Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi SQL - Ich erhalte alle Datensätze doppelt (https://www.delphipraxis.net/118750-sql-ich-erhalte-alle-datensaetze-doppelt.html)

Neutral General 14. Aug 2008 08:57

Datenbank: Firebird • Version: 2.0 • Zugriff über: Interbase / Delphi

SQL - Ich erhalte alle Datensätze doppelt
 
Hi,

Folgende SQL-Query liefert mir alle Datensätze 2 mal.

SQL-Code:
/* Die = 1 Bedingung würde innerhalb von Delphi durch = i ausgetauscht werden (for-schleife) */
SELECT xls_fld.ID,xls_fld.name,xls_fld.color FROM xls_tpl LEFT JOIN xls_fld ON xls_fld.tplid = 1
Seltsamerweise existiert aber jeder Datensatz nur einmal in der Datenbank. Das heißt ich scheine ungewollt jeden Datensatz zweimal zu selectieren.

Das Problem behoben habe ich so:

SQL-Code:
SELECT distinct xls_fld.ID,xls_fld.name,xls_fld.color FROM xls_tpl LEFT JOIN xls_fld ON xls_fld.tplid = 1
Allerdings würde mich jetzt interessieren was an obiger Query falsch ist.

Gruß
Neutral General

DeddyH 14. Aug 2008 09:01

Re: SQL - Ich erhalte alle Datensätze doppelt
 
Das "Beziehungsfeld" (Fremdschlüssel) fehlt hier, Deine JOIN-Bedingung gehört in die WHERE-Klausel.
SQL-Code:
SELECT Felder FROM Tabelle1 
LEFT JOIN Tabelle2 ON Tabelle2.FK = Tabelle1.PK
WHERE Bedingung

Neutral General 14. Aug 2008 09:05

Re: SQL - Ich erhalte alle Datensätze doppelt
 
Hi,

Danke, so funktionierts:

SQL-Code:
SELECT xls_fld.ID,xls_fld.name,xls_fld.color FROM xls_tpl
LEFT JOIN xls_fld ON xls_fld.tplid = xls_tpl.id
WHERE xls_tpl.id = 1
:)

Trotzdem versteh ich nicht warum er mir bei meiner ursprünglichen Abfrage alles doppelt selectiert. Womit veranlasse ich das?

mkinzler 14. Aug 2008 09:07

Re: SQL - Ich erhalte alle Datensätze doppelt
 
Es wurde jedem Datensatz der 1. Tabelle der gleiche Datensatz der 2 Tabelle hinzugejoint


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:10 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz