具有相同属性的SQL两个或更多

时间:2013-12-03 22:41:37

标签: mysql sql

我有一个看起来像这样的表:

id  value    has_other  color
1   banana   0          yellow
2   apple    1          red
3   apple    1          green
4   orange   0          orange
5   grape    0          red
6   grape    0          green

我想创建一个查询,选择所有包含'has_other'= 0的条目,但是其他条目具有相同的'value'和'has_other'值(主要用于查找重复项)

修改:添加了一些条目。查询应返回以上示例:

5, grape, 0, red
6, grape, 0, green

有什么想法吗?

干杯

3 个答案:

答案 0 :(得分:2)

这将返回您要查找的结果:

SELECT t.*
FROM myTable t
INNER JOIN (
  SELECT value
  FROM myTable
  WHERE has_other = 0
  GROUP BY value
  HAVING count(*) > 1
  ) a ON a.value = t.value
WHERE t.has_other = 0;

sqlfiddle demo

答案 1 :(得分:0)

select * 
from myTable 
where value in (
    select value
    from myTable
    where has_other = 0
    group by value
    having count(*) > 1
)
 and has_other = 0

答案 2 :(得分:0)

如果您展示了预期的结果,那就太好了。我想你想从你的数据得到这个结果: expected result

好吧,要获得没有重复的结果,您必须使用distinct函数。这是剧本:

select distinct(f.value), f.has_other
from fruit f
where f.has_other=0

我希望这可以帮到你。