Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Join geht nicht (https://www.delphipraxis.net/24894-join-geht-nicht.html)

LogoPie 28. Jun 2004 11:06


Join geht nicht
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hi Leutz
Habe Folgenden Join über 2 Tabellen innerhalb einer DB.
SQL-Code:
SELECT Firma, Anrede, Name FROM Interessenten FULL OUTER JOIN Interessen ON Interessenten.InteressenNr = Interessen.InteressenNr
Ich bekomme eine Fehlermeldung, wo ist mein fehler ?
Das gleiche gilt, wenn ich RIGHT OUTER verwenden.
Bei LEFT OUTER und INNER gibt es keine Probleme.

LogoPie 28. Jun 2004 11:25

Re: Join geht nicht
 
Liste der Anhänge anzeigen (Anzahl: 1)
Folgende Join Abfrage ist auch nicht möglich.
SQL-Code:
SELECT IntNr,Firma,Anrede,Name FROM Interessenten LEFT OUTER JOIN Interessen ON Interessenten.IntNr = Interessen.IntNr
Fehlermeldung im Anhang

Weiß Vielleicht jemand eine Lösung ? Wenn ich Select IntNr weg lasse funktioniert die Abfrage.
Aber leider nur für Firma,Andrede und Name, Refetenz wird nicht angezeigt.

GRuß Pierre

nieurig 28. Jun 2004 12:48

Re: Join geht nicht
 
Hi !
Welche DB wird genutzt?

Fehlermeldung 1 läßt vermuten, dass eine andere Schreibweise erwartet wird
versuch mal outer ohne full

SQL-Code:
SELECT IntNr,Firma,Anrede,Name FROM Interessenten OUTER JOIN Interessen ON Interessenten.InteressenNr = Interessen.InteressenNr
und left ohne outer

SQL-Code:
SELECT IntNr,Firma,Anrede,Name FROM Interessenten LEFT JOIN Interessen ON
Interessenten.InteressenNr = Interessen.InteressenNr
Das wäre die richtige Schreibweise für Access.



Fehler 2
Sagt nur, das der Spaltenname IntNr nicht eindeutig ist.

SELECT IntNr, <- dies Feld kommt in BEIDEN Tabellen vor

verwende deshalb

SQL-Code:
SELECT Interessenten.IntNr,
Firma,Anrede,Name FROM Interessenten LEFT JOIN Interessen ON Interessenten.IntNr = Interessen.IntNr
Schöne Grüße
Niels

P.S. Wofür brauchst Du einen OUTER JOIN?? - ich habe das Ding noch nicht gebraucht.

LogoPie 28. Jun 2004 12:52

Re: Join geht nicht
 
Vielen dank, werde ich gleich mal testen.

Ich benutze ADS

LogoPie 28. Jun 2004 13:05

Re: Join geht nicht
 
So geht es ohne fehlermeldung aber das ergebnis stimmt nicht, es werden nur die inhalte aus der tabelle interessenten angezeigt.
SQL-Code:
SELECT Interessenten.IntNr,Firma,Anrede,Name FROM Interessenten LEFT OUTER JOIN Interessen ON Interessenten.IntNr = Interessen.IntNr

shmia 28. Jun 2004 13:23

Re: Join geht nicht
 
Bei JOINS muss man immer darauf achten, dass in der Felderliste keine mehrdeutigen Feldnamen auftreten.
Ansonsten kann es zu einer Fehlermeldung kommen (z.B. "Column found in multiple tables").
SQL-Code:
SELECT Interessenten.IntNr, Interessenten.Firma, Interessenten.Anrede, Interessenten.Name FROM Interessenten LEFT OUTER JOIN Interessen ON Interessenten.IntNr = Interessen.IntNr
Die beiden Tabellennamen sind doch ziemlich sperrig; deshalb darf man auch Aliasnamen verwenden:
SQL-Code:
SELECT F.IntNr, F.Firma, F.Anrede, F.Name FROM Interessenten F LEFT OUTER JOIN Interessen I ON F.IntNr = I.IntNr
Nun fällt auf, dass kein einzige Feld aus Tabelle Interessen (=I) abgefragt wurde.
So würde der ganze JOIN keinen Sinn machen, deshalb:
SQL-Code:
SELECT F.Firma, F.Anrede, F.Name, I.Bezeichnung FROM Interessenten F LEFT OUTER JOIN Interessen I ON F.IntNr = I.IntNr
Das Ergebnis dieser Abfrage könnte so aussehen:
Code:
IBM          Herr     Schuler        Webdesign
Mayer & Ci   Frau     Trebentz       Sales Manager Training
Microsoft    Herr     Thomas         <NULL>
Der NULL-Wert ist durch den LEFT OUTER JOIN entstanden. Bei einem INNER JOIN wäre die letzte Zeile unterdrückt worden.

LogoPie 28. Jun 2004 13:59

Re: Join geht nicht
 
Jo vielen dank
hat alles wunderbar geklappt.

Gruß Pierre


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

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