Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi [MySql] Einfache Join Frage (https://www.delphipraxis.net/147829-%5Bmysql%5D-einfache-join-frage.html)

4dk2 17. Feb 2010 07:18

Datenbank: Mysql • Zugriff über: ZeosLib

[MySql] Einfache Join Frage
 
Hallo zusammen,

ist wahrscheinlich eine "doofe" Frage aber ich als nicht SQL-Experte möchte folgendes machen:

Tabelle1 und Tabelle2 haben beide ein ID Feld

Tabelle 1 Daten:
1
2
4
Tabelle 2 Daten:
1
2
3

Folgendes Ergebnis möchte ich per Join erreichen:
1 1
2 2
3 Null
Null 4

Mit left join oder right join sinds halt immer nur 1,2,3 oder 1,2,4 ...

Danke für eure Antworten

fkerber 17. Feb 2010 07:20

Re: [MySql] Einfache Join Frage
 
Hi!

Ich glaube, dafür bräuchtest du einen Full Outer Join - und ich glaube mich zu erinnern, dass MySQL den nicht unterstützt oder zumindest nicht mit allen Tabellenformen unterstützt. Aber such mal bei Google, da solltest du etwas dazu finden.


Grüße, Frederic

hoika 17. Feb 2010 07:21

Re: [MySql] Einfache Join Frage
 
Halo,

kennt mysql einen full outer join ?

zu spät ;(


Heiko

Matze 17. Feb 2010 08:28

Re: [MySql] Einfache Join Frage
 
So bekommst du das auch mit MySQL hin:

SQL-Code:
SELECT a.id, b.id FROM test a
   LEFT OUTER JOIN test2 b
       ON a.id = b.id
UNION
SELECT a.id, b.id FROM test a
   RIGHT OUTER JOIN test2 b
       ON a.id = b.id
Nur sortiert ist es dann noch nicht.

Jürgen Thomas 17. Feb 2010 09:01

Re: [MySql] Einfache Join Frage
 
Zitat:

Zitat von Matze
Nur sortiert ist es dann noch nicht.

Aber das UNION-Ergebnis kann mit DISTINCT und ORDER bY versehen werden, siehe MySql-Referenz: UNION.

Gruß Jürgen

hoika 17. Feb 2010 09:02

Re: [MySql] Einfache Join Frage
 
Hallo,

#4
ich glaube nicht,
hier wird doch für

Tab1.a / Tab2.a

Ein doppelter Eintrag erzeugt ?

Distinct ist also zwingend notwendig.


Heiko

DeddyH 17. Feb 2010 09:07

Re: [MySql] Einfache Join Frage
 
IIRC sortiert UNION doppelte Datensätze aus. Wenn man das nicht will, muss man UNION ALL verwenden.

Matze 17. Feb 2010 10:06

Re: [MySql] Einfache Join Frage
 
Ich bin auch kein MySQL-Guru, aber die Abfrage funktionierte bei mir, wenn ich 2 Tabellen mit den genannten Werten anlege.
Vielleicht gibt es andere, bessere Lösungen. ;)

4dk2 18. Feb 2010 08:01

Re: [MySql] Einfache Join Frage
 
Hallo,
Die Antwort von Matze hat mir sehr weitergeholfen.
Vielen Dank


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