Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi join? left join? oder beides? (https://www.delphipraxis.net/15127-join-left-join-oder-beides.html)

barnti 22. Jan 2004 12:18


join? left join? oder beides?
 
Hallo,

ich habe mal wieder Probleme das richtige Statement zu formulieren:

ich arbeite unter mysql 4.irgentwas und habe die folgende Situation

_____
Kunde
_____
key: kunde_id

______
Partie
______
key: Partie_id
forreignKey: Kunde_id

__________
unterpartie
___________
key: unterpartie_id
key: partie_id

Nun möchte ich folgendes ergebnis bekommen: Alle Partien eines bestimmten Kunden, und wenn existent, die unterpartien der entsprechenden Partie.

Beispiel:

Kunde
_____
Kunde_ID: 1
Kunde_ID: 2


Partie
______
Partie_ID: 1, Kunde_ID: 1
Partie_ID: 2, Kunde_ID: 1
Partie_ID: 3, Kunde_ID: 1
Partie_ID: 4, Kunde_ID: 2


unterpartie
___________
unterpartie_id: 1, partie_ID: 1
Unterpartie_id: 2, partie_id: 1

Als Ergebnis sollte dann das folgende erscheinen:

Partie_id
1
unterpartie_id
1

unterpartie_id
2

Partie_id
2

Partie_id
3

Ich hoffe das Problem wird deutlich. Mein Versuch:

SQL-Code:
SELECT * 
FROM partie p, unterpartie u, kunde k
left join unterpartie on p.partie_id=u.partie_id
where unterpartie_id is null                      // bis hierher bekomme ich alle datensätze die keine
and k.kunde_id=p.kunde_id                         // Entsprechung in unterpartie haben, nur das mit der
and kunde_ID=1                                     // Kundennummer haut nicht hin. Es sind immer alle Partien
                                                   // aufgeführt!?
Für Hilfe wäre ich sehr dankbar,
Gruß,

Barnti

Leuselator 22. Jan 2004 12:42

Re: join? left join? oder beides?
 
SQL-Code:
         SELECT * 
           FROM Kunde K
LEFT OUTER JOIN Partie P
             ON P.kunde_id = K.kunde_id
LEFT OUTER JOIN unterpartie U
             ON u.partie_id=p.partie_id

-- und wenn Du nur einen bestimmten Kunden haben möchtest, dann:

          WHERE K.kunde_ID=1
Gruß

Phoenix 22. Jan 2004 12:47

Re: join? left join? oder beides?
 
Code:
SELECT *
FROM Kunde k
  LFET OUTER JOIN Partie p ON k.Kunde_Id = p.Kunde_Id
    LEFT OUTER JOIN Unterpartie u ON o.Partie_Id = u.Unterpartie_Id
WHERE
  k.Kunde_Id = 1
Sollte eigentlich tun.


Edit: Mift.. war wieder einer schneller ;-)

barnti 22. Jan 2004 13:02

Re: join? left join? oder beides?
 
Hallo ihr zwei,

das war natürlich richtig ;) Ich habe leider immer noch Probleme mit dem Formulieren von Statements. Schön, dass es euch scheinbar leicht fällt.

Danke für die schnelle und kompetente Hilfe,

Gruß,

Barnti

Memo 22. Jan 2004 13:07

Re: join? left join? oder beides?
 
Zitat:

Zitat von barnti
Ich habe leider immer noch Probleme mit dem Formulieren von Statements. Schön, dass es euch scheinbar leicht fällt.

Schau dir mal Navicat an. Das kann dir da eine Menge Arbeit abnehmen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:16 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