Мені здається, що ви можете зробити те ж саме в SQL-запиті, використовуючи або НЕ ІСНУЄТЬСЯ, ні ВНУТЬ, або ВЛІТТЕ ПРИЄДНАЙТЕСЬ, ЩО НУЛЬНО. Наприклад:
SELECT a FROM table1 WHERE a NOT IN (SELECT a FROM table2)
SELECT a FROM table1 WHERE NOT EXISTS (SELECT * FROM table2 WHERE table1.a = table2.a)
SELECT a FROM table1 LEFT JOIN table2 ON table1.a = table2.a WHERE table1.a IS NULL
Я не впевнений, чи правильний синтаксис я правильний, але це загальні методи, які я бачив. Чому я вирішив використовувати один над іншим? Чи відрізняється продуктивність ...? Який із них найшвидший / найефективніший? (Якщо це залежить від впровадження, коли я буду використовувати їх?)
EXISTS
пункті. Ви можете повернутися *
, NULL
або що завгодно: все це буде оптимізовано.
SELECT
і FROM
. І *
просто простіше набрати. Так, SQL
чи є схожа з природною мовою, але вона розбирається і виконується машиною, запрограмованою машиною. Справа не в тому, що він коли-небудь раптом увірветься у вашу кабінку і кричить "перестаньте вимагати додаткових полів у EXISTS
запиті, тому що мені боляче розбирати їх, а потім викидати їх!". З комп’ютером все гаразд.