我正在做兩個表之間的內部聯接,其中一個是關聯表,所以存在多對一的關係。我想拿出那個可以決定是否對加盟的關鍵存在不止一個查詢一旦超過存儲在更新列中的值倍數,但不知道有效的方式來實現這一目標:選擇發現IF多個
SELECT
MainTable.Name
FROM MainTable
INNER JOIN ASSN_Main ON MainTable.AppID = ASSN_Main.AppID
WHERE
EXISTS (SELECT
COUNT(MainTable.AppID)
FROM MainTable
INNER JOIN ASSN_Main ON MainTable.AppID = ASSN_Main.AppID
GROUP BY
MainTable.AppID
HAVING
(COUNT(MainTable.AppID)>1));
問題是子查詢抓取了appid上有重複的正確對象,但主SELECT查詢抓取所有appid名稱,而不是僅存在於子查詢中的名稱。由於子查詢是正確的,不知道出了什麼問題?
工作就像一個魅力,我嘗試使用IN,但我想我的語法是錯誤 – Jake 2010-10-08 15:37:36
但爲什麼沒有像預期 – Jake 2010-10-08 15:39:35
子查詢的存在會工作某種程度上需要將它的結果集與主要查詢聯繫起來,以便它能夠按照你的意願做我想做的事情。無論如何,IN查詢在語義上更加正確 - 它更能表達你想要達到的目標(恕我直言)。 – 2010-10-08 15:47:31