0
我需要做一個查詢,讓我REFC已全部責令同時使用計數,並且在不增加一倍至少一種類型的產品的客戶的計數的說法是:SQL雙NOT IN VS COUNT
SELECT NomC, RefC
FROM client NATURAL JOIN commande NATURAL JOIN detail NATURAL JOIN PRODUIT
WHERE TypeP IN ("clou", "cheville", "planche")
GROUP BY NomC
HAVING COUNT(DISTINCT TypeP) = 3;
我遇到了雙重「NOT IN」等價物,並理解其背後的整體邏輯,以及:爲什麼我不能在這種情況下使用NOT EXISTS?任何幫助表示讚賞 Here is a schema of the database
你應該真的執行你的查詢,它有助於學習sql。這個查詢既不會真正執行(不正確使用'「被列不匹配,選擇/組'爲MySQL> = 5.7),也不會得到期望的結果集(」有序至少一種類型的」獨特REFC的情況下,你會具有非唯一名稱)或(僅)預期結果列(「RefC」)。此外,您可以使用'not in',只要您可以使用'not exists',這就是您的老師想要的。如果可以的話,使用'not exists',然後將其重寫爲'not in'(通過將依賴列推到外面)。 – Solarflare
首先,我建議永遠不要使用自然連接。一天,有人將一列添加碰巧具有相同的名稱作爲另一個表中的列的表。然後,使用幾個表時,你的資格列。最好的辦法是使用表別名(例如'從客戶C')和使用這些作爲限定符(例如'c.NomC')。最後:你應該使用標準的引號來表示字符串,這是單個''',而不是雙重的e'''。另外:NomC是否保證是唯一的? RefC進行分組會更自然,這似乎是客戶表的主鍵。 –