mysql选择一次(DISTINCT不工作)

时间:2016-01-11 22:12:42

标签: mysql sql select

这是我的sql表:SQLFiddle

我尝试获取id_user一次,但在WHERE子句中有两个或更多条件

如果我使用此代码:

SELECT DISTINCT id_user FROM base_group_details WHERE id_category=3

我得到了很好的结果,但我想在WHERE中获得带有两个或更多参数的结果,例如:

SELECT DISTINCT id_user FROM base_group_details WHERE id_category=3 AND id_category=4 

我应该得到2个结果,但它不起作用。

4 个答案:

答案 0 :(得分:4)

没有一行可以包含3和4的类别,因此不会返回任何行。解决这些类型问题的一种方法是对结果进行分组并计算每个用户具有的相关不同类别的数量:

SELECT id_user
FROM   base_group_details
WHERE  id_category IN (3, 4)
HAVING COUNT(DISTINCT id_category) = 2

答案 1 :(得分:1)

你不能拥有像id=3 AND id=4这样的东西,它不能同时是两个确切的值。您可以使用的另一种方法是使用IN子句:

SELECT DISTINCT id_user FROM base_group_details WHERE id_categor IN (3,4)

然后,您可以在括号之间添加更多值。 我希望这适合你。

答案 2 :(得分:0)

我想这就是你想要的

SELECT DISTINCT id_user 
FROM base_group_details 
WHERE id_category=3 and id_user IN ( 
    SELECT DISTINCT id_user 
    FROM base_group_details 
    WHERE id_category = 4 )

输出是id_user 1和3

答案 3 :(得分:0)

SELECT DISTINCT id_user,id_category FROM base_group_details WHERE id_category IN('3','4')GROUP BY id_user,id_category