我在MySQL數據庫的一個表中運行一個查詢,其中包含多個「where id in」子句。我在每個查詢中加入了DISTINCT,試圖減少結果的數量。仍然鎖定我的MySQL表。任何我不知道的故障,或者我應該嘗試擺脫一些DISTICT?只有第一個DISTINCT是必要的。SQL multiple select ... where id in and DISTINCT
SELECT DISTINCT id, name
FROM TP_Test_Info
WHERE id IN (SELECT DISTINCT test_id
FROM TP_Test_Sections
WHERE id IN (SELECT DISTINCT section_id
FROM TP_Test_Questions
WHERE id IN (SELECT DISTINCT question_id
FROM TP_Student_Answers
WHERE student_id = 751)))
最後一個表TP_Student_Answers有大約32,000個條目。其餘的要小得多。
我意識到我應該在大表中索引一些行。隔開它。任何其他問題突出?
聽說加入的? – Strawberry
你爲什麼不嘗試加入? – Shomz
我聽說過JOINS。我不知道你可以像TI那樣嵌套它們。猜猜這是有幫助和粗魯之間的區別。 –