Sie können einen linken äußeren Join
verwenden
um dies zu erreichen:
select
t1.tid
from
table1 t1
left outer join table2 t2 on
t1.tid = t2.tid
where
t2.tid is null
Dazu wird Ihre erste Tabelle (table1
), verbindet sie mit Ihrer zweiten Tabelle (table2
) und füllt null
aus für die table2
Spalten in einer beliebigen Zeile in table1
die mit keiner Zeile in table2
übereinstimmt . Dann filtert es das heraus, indem es nur table1
auswählt Zeilen, in denen keine Übereinstimmung gefunden werden konnte.
Alternativ können Sie auch
select
t1.tid
from
table1 t1
where
not exists (select 1 from table2 t2 where t2.tid = t1.tid)
Dadurch wird ein linker Semi-Join
ausgeführt , und macht im Wesentlichen dasselbe wie der left outer join
tut. Abhängig von Ihren Indizes kann einer schneller sein als der andere, aber beide sind praktikable Optionen. MySQL hat eine gute Dokumentation zum Optimieren der Joins , also sollten Sie das überprüfen..