0

我有两张表,我想在一个查询中取几个值。

表:

users
|user_id  |
|name     |

user_group_link
|user_id  |
|group_id |

这是我的查询:

SELECT users.*, user_group_link.* 
FROM users
LEFT JOIN user_group_link ON users.user_id = user_group_link.user_id 
WHERE user_group_link.group_id = 10 
AND user_group_link.group_id = 11
AND user_group_link.group_id = 12

问题是 AND 不起作用。我不明白为什么它不起作用,因为我以前使用过而且它似乎有效

4

3 回答 3

7

此查询的问题:没有一行包含 10、1112 作为 group_id...您需要OR此处!

SELECT users.*, user_group_link.* 
FROM users
LEFT JOIN user_group_link ON users.user_id = user_group_link.user_id 
WHERE user_group_link.group_id = 10 
OR user_group_link.group_id = 11
OR user_group_link.group_id = 12

选择:

SELECT users.*, user_group_link.* 
FROM users
LEFT JOIN user_group_link ON users.user_id = user_group_link.user_id 
WHERE user_group_link.group_id IN (10,11,12)
于 2013-09-04T20:09:59.533 回答
3

user_group_link.group_id不能10, 11, 或12 同时, 你需要OR代替AND.

所以你的查询应该是:

SELECT users.*, user_group_link.* 
FROM users
LEFT JOIN user_group_link ON users.user_id = user_group_link.user_id 
WHERE user_group_link.group_id = 10 
OR user_group_link.group_id = 11
OR  user_group_link.group_id = 12
于 2013-09-04T20:09:13.610 回答
2

尝试使用IN

  SELECT users.*, user_group_link.* 
  FROM users
  LEFT JOIN user_group_link ON users.user_id = user_group_link.user_id 
  WHERE user_group_link.group_id IN ('10','11','12')
于 2013-09-04T20:10:05.077 回答