MySQL Abfrage aus 2 Tabellen

Barcas

Neuer Benutzer
Beiträge
3
Hallo zusammen,

ich bin absoluter sql Anfänger und habe ein kleines Problem, bei dem ich nicht weiter komme.

Ich habe 2 Tabellen.
In Tabelle1 befinden sich sämtliche Produktdaten inklusive der Spalte EAN
In der Tabelle2 befinden sich die Spalten EAN und Preis.


Die Spalten EAN aus Tabelle 1 und Tabelle 2 sollen nun verglichen werden. Als Ergebnis sollen
sämtliche Einträge aus Tabelle1 geliefert werden deren EANs nicht in Tabelle 2 vorkommen.

Vielen Dank schonmal für eure Hilfe
Barcas
 
Werbung:
Dafür gibt es im SQL-Standard EXCEPT:

Code:
test=*# select * from tab1;
 ean  |  name   
------+-----------
 ean1 | produkt 1
 ean2 | produkt 2
 ean3 | produkt 3
(3 Zeilen)

test=*# select * from tab2;
 ean  
------
 ean2
(1 Zeile)

test=*# select ean from tab1 except select * from tab2;
 ean  
------
 ean3
 ean1
(2 Zeilen)

test=*# select * from tab1 where ean in (select ean from tab1 except select * from tab2);
 ean  |  name   
------+-----------
 ean1 | produkt 1
 ean3 | produkt 3
(2 Zeilen)

test=*#
 
Da MySQL nicht konform zum SQL-Standard ist bzw. diesen großflächig ignoriert, wirst Du einen anderen Weg gehen müssen - der hier aber trivial ist:

Code:
test=*# select tab1.* from tab1 left join tab2 using (ean) where tab2.ean is null;
 ean  |  name   
------+-----------
 ean1 | produkt 1
 ean3 | produkt 3
(2 Zeilen)

test=*#

Btw.: in PostgreSQL hättest Du für EAN einen eigenen Datentyp zur Verfügung, der die Werte nebenbei validiert.
 
Werbung:
Zurück
Oben