来自IN查询的意外结果

时间:2012-07-24 20:50:31

标签: php mysql

users_groups表

userid  groupid
10  4
10  2
6   4
11  4
12  2
13  2

  $query="SELECT count(*) FROM `users_groups` 
           WHERE `userid`='$fromuserid' 
             AND  `groupid` in (
               SELECT `groupid` 
                 FROM `users_groups` 
                WHERE `userid`=`$touserid
          );";

$ fromuserid = 10

$ touserid = 11

查找用户ID 10和用户ID 11的公共groupid的查询,但是我的查询返回null。查询有什么错误吗?

1 个答案:

答案 0 :(得分:3)

您的查询中存在语法错误。在子选择中有一个额外的反推。

SELECT count(*)
FROM `users_groups`
WHERE `userid`='$fromuserid'
AND `groupid` in (SELECT `groupid` FROM `users_groups` WHERE `userid`=`$touserid)
--                                                                    ^
--                                                                   here

应该是这样的:

SELECT `groupid` FROM `users_groups` WHERE `userid`=$touserid