MySQL - 如果其他行匹配,则获取行

时间:2014-03-12 14:38:53

标签: mysql

entry_id                 cat_id
----------------         ----------------
1                        1
1                        2
1                        3
2                        2
3                        4

我知道标题不是很有帮助,但基本上,如果设置了某些类别,我需要返回一行的条目ID。

所以例如我需要返回一个cat_id为1且为2或3的entry_id。

如果我们可以避免重复结果会很好,但是如果不可能的话,我总是可以用PHP删除重复项。

非常感谢帮助。

2 个答案:

答案 0 :(得分:3)

SELECT DISTINCT t1.entry_id
FROM yourTable t1
JOIN yourTable t2 ON t1.entry_id = t2.entry_id
WHERE t1.cat_id = 1
AND t2.cat_id IN (2, 3)

答案 1 :(得分:0)

试试这个:

  SELECT  entry_id
  FROM table1 
  WHERE cat_id = 1
  OR cat_id IN (2, 3)
  GROUP BY entry_id

由于不清楚你在问什么,我会做出其他尝试:

 SELECT  entry_id
 FROM table1 
 WHERE cat_id = 1
 AND   (cat_id = 2 or cat_id = 3)
 GROUP BY by entry_id