Мне нужно сделать запрос, подобный этому:
SELECT wposts.ID FROM posts wposts WHERE ( SELECT COUNT(ID) FROM surveys WHERE POST_ID = wposts.ID) > 0
а нужно ли работать?
Следующий SQL работает быстро, если внешний ключ surveys.POST_ID проиндексирован.
surveys.POST_ID
SELECT wposts.ID FROM posts wposts INNER JOIN surveys ON surveys.POST_ID = wposts.ID GROUP BY wposts.ID
Выбор возвращает по умолчанию «набор», который не совместим с целым числом. Вы можете сделать что-то вроде:
ВЫБРАТЬ wposts.ID ОТ сообщений wposts, ГДЕ НЕ ВХОДИТ (ВЫБЕРИТЕ COUNT (ID) ИЗ ОПРОСОВ, ГДЕ POST_ID = wposts.ID)