2012-12-19 171 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