我有一個問題來制定一個MySQL查詢來完成以下任務,儘管我已經看到類似的查詢在這裏討論,它們與這個完全不同,以斯諾克我試圖轉置它們。問題是(相當)簡單的狀態。我有三張桌子,'會員','dog_shareoffered'和'dog_sharewanted'。成員可能有零個或一個或多個廣告,用於他們想要出售或想要購買的東西,詳情存儲在相應的提供或需要的表格中,以及放置廣告的成員的ID。 'id'列對於成員是唯一的,並且對於所有三個表是共同的。我想要的查詢是詢問有多少成員沒有在任何一個表中放置廣告。針對三個表的MySQL查詢:A中有多少不在B或C中?
我已經嘗試了多種方式詢問此問題。我能得到的最接近的是一個不會崩潰的查詢! (我不是任何方式的MySQL專家)。以下我從我從其他示例中收集的內容放在一起,但它返回零行,我知道結果應該大於零。
SELECT id
FROM members
WHERE id IN (SELECT id
FROM dog_sharewanted
WHERE id IS NULL)
AND id IN (SELECT id
FROM dog_shareoffered
WHERE id IS NULL)
這個查詢看起來令人愉快的簡單理解,不同的是「加入的」我見過,但我猜測,也許我需要某種形式的加入,但如何將看起來在這種情況下?
我會強烈考慮將'dog_shareoffered'和'dog_sharewanted'表合併爲一個,並附加一個字段來表示「提供」與「共享」。 – 2012-02-20 01:19:18
@OliCharlesworth你不知道這兩個表是否有相同的列和相同的FOREIGN KEY對其他表。 – 2012-02-20 01:29:00
@BrankoDimitrijevic:你說得對,我不知道。所以我應該以「如果可能」來限定我以前的評論。 – 2012-02-20 01:29:32