2012-12-19 206 views
2

我有一個準備好的MySQL查詢如下。假設team1(第一張桌子)玩特定「比賽」(「遊戲」是team1的一個條目)的成員也可以是team2(第二個桌子)的成員。我想獲得不屬於team2成員的玩'遊戲'的team1成員的數量。但我不知道我錯了,因爲查詢失敗:在嵌套mysql查詢中計數

SELECT game, member 
FROM team2 
WHERE game = :game and member 
NOT IN (SELECT member FROM team1 WHERE game = :game) 
+1

你能說清楚你的表結構是什麼嗎? – jdotjdot

+0

你能告訴我什麼意思'遊戲=:遊戲'? –

+1

@goodmood也許他正在使用PHP和PDO。這是傳遞給SQL的參數。 –

回答

0

是SQL有點模糊處理

試試這個

SELECT t2.game, t2.member 
    FROM team2 t2 
    WHERE t2.game = :game 
    and t2.member 
    NOT IN (SELECT t1.member FROM team1 t1 WHERE t1.game = t2.game) 
    order by t2.game 

DEMO SQLFIDDLE

編輯:

如果這沒有解決你的問題,(因爲你不會說一個發生什麼事情)。只是分享你的整個代碼,看看問題出在哪裏。

+1

我不這麼認爲http://sqlfiddle.com/#!2/9a0ff/1/0 - 但我認爲這將有助於在這種情況下; o) –

+0

他讓sqls頭受到會員和比賽的麻煩(兩張牌的同名專欄),他沒有分散他們,但你的小提琴看起來也是對的。 –

+0

Rufo爵士的小提琴與OP提供的SQL代碼完全相同。因此,只看SQL,OP的代碼應該可以工作。我對德爾福一無所知,但聽起來像Rufo爵士是對的 - 問題在於海報提供的代碼片段之外。 – mmitchell