[MySQL] Tabelle verknüpfen

hammi

Well-known member
ID: 27472
L
4 Mai 2006
175
33
huhu :)

dass man Tabellen miteinander verknüpfen kann (z.b. mit JOIN) is klar.
Jedoch hab ich momentan das Problem:

Ich habe 2 Tabellen, tabelle a und b. Beide besitzen die gleichen spalten x und y
nun soll mir ein script alle einträge ausgeben, wo in tabelle a x=10 und y=15 ist, bzw. in tabelle b x=10 und y=15

Es muss nicht zwangsläufig in beiden Tabellen ein eintrag sein...

danke schonmal für eure hilfe!
hammi
 
Huhu ;)

Code:
SELECT * FROM a WHERE x = 10 AND y = 15
UNION
SELECT * FROM b WHERE x = 10 AND y = 15

ab MySQL 4.1 (glaube ich) ;)

Gruß, Zera
 
SELECT * FROM `tabelle1` as `a`, `tabelle2` as `b` WHERE (a.x=10 and a.y=15) or (b.x=10 and b.y=10)

weil, wenn ich mich recht erinnere, war ein union-select langsamer
 
SELECT * FROM `tabelle1` as `a`, `tabelle2` as `b` WHERE (a.x=10 and a.y=15) or (b.x=10 and b.y=10)

weil, wenn ich mich recht erinnere, war ein union-select langsamer

beim union muss er aber nicht joinen, hier aber produziert er ein Kreuzprodukt. Du wirst wohl sogar Sachen bekommen die du nicht brauchst.

Bsp
a:
x y irgendwas
10 15 0
10 15 1
11 16 0

b:
x y irgendwas
12 15 0
10 15 1
11 16 0

wirst du sowas bekommen
a.x a.y a.irgendwas b.x b.y b.irgendwas
10 15 0 12 15 0
10 15 0 10 15 1
10 15 0 11 16 0
10 15 1 12 15 0
10 15 1 10 15 1
10 15 1 11 16 0

Bei union
x y irgendwas
10 15 0
10 15 1
10 15 1

MfG respawner