我有一個連接多個表(3或4)的查詢並按預期得到結果。在子查詢中選擇所有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將是連接字段。
我試過了WHERE NOT EXISTS( - 上面的查詢 - )但是沒有返回任何不正確的結果。我也試過'NOT IN()'
有沒有更好的方法來做到這一點?
沒有看到您的實際查詢,我敢說,你的子查詢是不相關的。 – mustaccio
請發表您的真實問題,數據樣本和預期結果。你的解釋不是很清楚,你的查詢也不清楚:'test_id = tq_test_id' - 我們不知道那些列屬於哪個表 – Alex
你究竟是如何嘗試'NOT IN()'的?如果您想將此查詢用作子查詢,則不需要結果集中的theCount。 – Philipp