SQL Tabellen verknüpfen mit UNION

-Rayz-

Lieutenant
Dabei seit
Okt. 2010
Beiträge
686
Hallo,

ich habe zwei Tabellen welche miteinander verknüpft sind.
Tabelle 1 greift zwei mal auf den selben Datensatz aus Tabelle 2 zu.
Hier mein select:

SELECT * FROM
(
(
SELECT
fa.name,
fa.article_number,
...
FROM
h
INNER JOIN fa ON h.a_id = fa.id...
WHERE cu.id = 3

)UNION (
SELECT
fb.name,
fb.article_number,
....
FROM
h
INNER JOIN fb ON h.b_id = fb.id
WHERE cu.id = 3
)
)AS resultTable
GROUP BY resultTable.name

Da der selbe Datensatz einmal unter a und einmal und b steht, hatte ich erwartet, dass der Datensatz in der Ausgabe auch zwei mal vorkommt. Er wird aber nur einmal angezeigt.

Was muss geändert werden, damit ich den Datensatz einmal für 'a' und einmal für 'b' sehe ?

Gruß Rayz
 

Madman1209

Fleet Admiral
Dabei seit
Nov. 2010
Beiträge
25.327
Hi,

ich kann mich täuschen, aber auf den ersten Blick hätte ich gesagt, dass dein "GROUP BY" dir die beiden identischen Datensätze zu einem gruppiert.

VG,
Mad
 

-Rayz-

Lieutenant
Ersteller dieses Themas
Dabei seit
Okt. 2010
Beiträge
686
Die Kombination war es.
UNION ALL rein GROUP BY raus.

Super vielen Dank!^^
Dann verschachtel ich mal weiter.. mal sehen ob es dann kracht
 

Madman1209

Fleet Admiral
Dabei seit
Nov. 2010
Beiträge
25.327
Hi,

wenn man fragen darf: was genau machst du denn? "Verschachteln" und "krachen" klingt jetzt nicht so vertrauenerweckend ;)

VG,
Mad
 

-Rayz-

Lieutenant
Ersteller dieses Themas
Dabei seit
Okt. 2010
Beiträge
686
Habe mehrere Tabellen welche ich zusammengefasst ausgeben möchte.
Leider "kracht" es schon..
Tabelle 1 hat nun einen Datensatz welcher zwei mal den selben Datensatz auf Tabelle 2 beinhaltet
Ein weiterer Datensatz aus Tabelle 1 beinhaltet noch einmal den selben Datensatz aus Tabelle 2 + einen anderen Datensatz aus Tabelle 2.

Sagen wir Tabelle 2 besteht auf folgenden zwei Datensätzen:
Name 1
Name 2

Demnach hat Tabelle 1 nun folgende Werte:
Name 1 Name 1
Name 1 Name 2

Bei meiner Ausgabe müsste also 3 mal Name 1 und einmal Name 2 auftauchen.
Leider bekomme ich aber nur 2 mal Name 1 angezeigt... -_-
 

sdwaroc

Captain
Dabei seit
Juni 2013
Beiträge
3.873
Ich rede auch immer so wenn ich heiß drauf bin ne Idee umzusetzen, die am Anfang klang wie "das klappt doch nie" aber theoretisch doch eine ganz passable Lösung darstellt. ;)

@Topic:
Willst du das karthesische Produkt von (Tabelle 2)x(Tabelle 2) in Tabelle 1 bilden?
 
Zuletzt bearbeitet:

-Rayz-

Lieutenant
Ersteller dieses Themas
Dabei seit
Okt. 2010
Beiträge
686
Tabelle 1
ID Name
1 Name_Eins
2 Name_Zwei


Tabelle 2
ID Name_a Name_b Identifier
1 Name_Eins Name_Eins 4
2 Name_Eins Name_Zwei 4


Tabelle 2 hat drei mal den Typ Name_Eins und einmal den Typ Name_2.

Nun sage ich, gib mir alle Typen aus welche den Identifier 4 haben.

Ausgabe wären 4 Datensätze.
Name_Eins
Name_Eins
Name_Eins
Name_Zwei
Ergänzung ()

Habe nun in beide Selects ein GROUP BY NAME hinzugefügt
Scheint jetzt zu funktionieren:D

Interessant zu wissen wäre es aber nun...
wie ich aus den Ausgaben es auf zwei Ausgaben beschränke:

Sprich wie oft ist Name 1 und wieoft ist Name 2 insgesamt vorhanden...
 
Zuletzt bearbeitet:
Top