Vladimir Kheifets пишет:(SELECT count(id) FROM blacklist WHERE userID = user.id OR objectID = user.id )=0
Не надо так делать. Нет нужды перебирать и считать всё подходящее, когда заведомо известно, что проверяем существование хотя бы одной строки. Есть куда более подходящие exists/not exists.
andrewkard пишет:SELECT * FROM match WHERE id NOT IN ( SELECT id FROM email WHERE id IS NOT NULL)
Честно уже не помню насколько внятно это умеет выполнять mysql.
Есть весёлое ограничение из стандарта SQL о том, как именно IN должен обрабатывать ситуацию если в строках подзапроса будет хотя бы один NULL: как NULL всего выражения, независимо от прочих результатов. Из-за этого например в postgresql in хуже эквивалентного exists.
CODE (
SQL):
скопировать код в буфер обмена
SELECT * FROM user WHERE NOT EXISTS (SELECT 1 FROM blacklist WHERE userID = user.id OR objectID = user.id )