Herzlich willkommen im Archiv vom ABAKUS Online Marketing Forum
Du befindest Dich im Archiv vom ABAKUS Online Marketing Forum. Hier kannst Du Dich für das Forum mit den aktuellen Beiträgen registrieren.
Code: Alles auswählen
select *
from email_no_kunden nk
where not exists (select * from email_kunden k where k.email = nk.email)
Mit join:JohnBi hat geschrieben:Tabelle1: email_kunden (id, email) (1000 Datensätze)
Tabelle2: email_no_kunden (id_no, email_no) (6000 Datensätze)
nun möchte ich, dass alle email_kunden-Datensätze aus email_no_kunden herausgefiltert werden und mir nurnoch email_no_kunden angezeigt werden ohne email_kunden.
Zu der Performance der ersten Abfrage mit join kann ich nichts sagen.Mork vom Ork hat geschrieben:Mit join:
select * from no_kunden left join kunden on no_kunden.email=kunden.email where kunden.email is null;
Ohne join (möglicherweise schneller):
select * from no_kunden where email not in (select email from b)
Sollte auch keine Kritik sein. Wie gesagt, meine Aussagen beziehen sich eher auf MS SQL und außerdem führen viele Wege zum ZielMork vom Ork hat geschrieben:Das sollten auch nur Anregungen sein. Er kann ja mal alle drei ausmessen.
naja... wenn nicht mysql 5 oder neuer verwendet wird, führt nur der join zum ziel... die älteren Versionen unterstützen keine subquery...DanielS hat geschrieben:Sollte auch keine Kritik sein. Wie gesagt, meine Aussagen beziehen sich eher auf MS SQL und außerdem führen viele Wege zum Ziel
Deswegen ja auch meine Betonung auf "meine Aussagen beziehen sich eher auf MS SQL"net(t)worker hat geschrieben:auch kann man die Queryzeiten für einzelne Abfragen nicht zwischen komplett verschiedenen DB Systemen vergleichen.. selbst bei unterschiedlichen mysql Versionen gibt es dort teilweise beachtliche unterschiede...
Danke Mork, die Version hat super geklappt.Mork vom Ork hat geschrieben: Mit join:
select * from no_kunden left join kunden on no_kunden.email=kunden.email where kunden.email is null;