У меня есть запрос, который объединяет несколько таблиц (3 или 4) и получает результаты, как ожидалось.SELECT все EXCEPT результаты в подзапросе
SELECT DISTINCT test_title, stt_id FROM student_tests
LEFT JOIN student_test_answers ON sta_stt_num = stt_id
JOIN tests ON stt_test_id = test_id
WHERE student_test_answer_id IS NULL
У меня есть еще один запрос, который показывает другой набор данных, в основном это:
SELECT test_id, COUNT(*) AS theCount FROM tests
JOIN test_questions ON test_id= tq_test_id
WHERE type= 'THE_TYPE'
GROUP BY test_id
HAVING theCount = 1
Поэтому в основном я хочу, чтобы НЕ включать результаты этого второго запроса в первом. test_id будет полями объединения.
Я пробовал, ГДЕ НЕ СУЩЕСТВУЕТ (-в приведенном выше запросе -), но который не возвращает никаких результатов, что неверно. Я также попробовал «NOT IN()»
Есть ли лучший способ сделать это?
Не видя вашего фактического запроса, я рискну предположить, что ваш подзапрос не был коррелирован. – mustaccio
напишите пожалуйста свои настоящие запросы, образцы данных и ожидаемый результат. ваше объяснение не очень понятно, и ваш запрос также не ясен: 'test_id = tq_test_id' - мы понятия не имеем, какая таблица принадлежит этим столбцам. – Alex
Как именно вы пытались' NOT IN() '? Если вы хотите использовать этот запрос, так как подзапрос не нужен theCount в наборе результатов. – Philipp