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..