У меня есть этот запрос:Почему я должен использовать функцию EXISTS() в MySQL?
SELECT * FROM mytable t1
WHERE t1.id = :id AND
EXISTS(SELECT 1 FROM t2 WHERE t2.post_id = :id)
И когда я удалить что EXISTS()
функции, до сих пор мой код работает:
SELECT * FROM mytable t1
WHERE t1.id = :id AND
(SELECT 1 FROM t2 WHERE t2.post_id = :id LIMIT 1)
Так почему я должен написать, что? В чем его преимущество?
Exists возвращается на первом матче. Подзапрос извлекает все соответствующие записи. Пойдите, прочитайте руководство. – Pred
@Pred Спасибо за подсказку. Но я отредактировал свой второй запрос. Так что теперь есть разные? –
Соответствие требованиям ANSI SQL является одной из причин. – jarlh