Как выбрать результаты из таблицы T1, где
T1.itemID = T2.itemID
и никакой соответствующей записи, найденной в T2, то есть найденной только в T1?
Вот так:
SELECT …
FROM t1 LEFT JOIN t2 ON (t1.itemid = t2.itemid)
WHERE t2.itemid IS NULL
Более очевидный запрос, использующий NOT EXISTS, запускает более медленные старые версии MySQL. Спасибо @OMG Ponies за тесты в новой (неуказанной) версии.
Вот версия NOT EXISTS:
SELECT …
FROM t1
WHERE NOT EXISTS (SELECT 1 FROM t2 WHERE t2.itemid = t1.itemid)
(Объяснение, чтобы ответить на комментарии: LEFT JOIN
отличается от INNER JOIN
тем, что, если в правой таблице нет строки, строка все равно возвращается в результатах, но со всеми столбцами = NULL.)
select * from T1 where ItemID not in (select ItemId from T2)