# MySQL: Abfrage auf 2 Tabellen durch join



## search@info (14. Mrz 2008)

Hallo Leute

Ich versuche eine Abfrage auf 2 Tabellen zumachen.
Ich will 2 unt Werte bekomme - einmal die, die nicht auf die Bed zutreffen und einmal die, die auf die Bed zutreffen.

Ein Beispiel:

Wenn ich diese Abfrage mache:
SELECT * FROM tabelle1 WHERE datum > '2008-02-01 08:00:00'
->bekomme ich z.B. 13 Einträge.
Diese 13 Einträge unterscheide ich durch einen Vergleich mit einer 2. Tabelle
1.
SELECT * FROM tabelle1
WHERE datum > '2008-02-01 08:00:00' and typ IN
(SELECT typ
FROM tabelle2
WHERE tabelle1.typ like tabelle2.typ
and (wert like 'E' or wert like 'N'))
GROUP BY typ;
-> da bekomme ich 2 Werte raus
nun will ich die restlichen 11 Werte bekommen, wenn ich es negativ setzte geht es nicht, hab es schon ausprobiert
Glaube das man das mit LEFT JOIN und RIGHT JOIN machen kann...
Hat jemand ein SELECT-Bespiel für mich?


----------



## The_S (20. Mrz 2008)

Ein

SELECT * FROM tabelle1
WHERE datum > '2008-02-01 08:00:00' and typ NOT IN
(SELECT typ
FROM tabelle2
WHERE tabelle1.typ like tabelle2.typ
and (wert like 'E' or wert like 'N'))
GROUP BY typ; 

geht nicht?


----------



## Capasso (20. Mrz 2008)

Müsste das nicht so reichen.

SELECT * FROM tabelle1 
         WHERE datum > '2008-02-01 08:00:00' and typ NOT IN 
             (SELECT typ 
                   FROM tabelle2 
                       WHERE wert  like 'E'  or  wert like 'N'); 



Ich versteh nicht ganz was was das bringen soll: *tabelle1.typ like tabelle2.typ *

[/b]


----------



## The_S (20. Mrz 2008)

@Capasso

stimmt, des kommt davon, wenn man sich den SQL nicht richtig ansieht


----------



## Capasso (20. Mrz 2008)

hat das so funktioniert??


----------



## The_S (20. Mrz 2008)

kA, ich habs net ausprobiert, aber die von dir bemängelte Zeile ist ja wohl auch wirklich ganz eindeutig fehlerhaft


----------

