基于多行的复杂SQL选择

时间:2013-02-16 18:48:57

标签: mysql sql mysqli

我有这张桌子:

id item_id属性数量

1         1               a                   2
2         1               b                   3
3         1               c                   4
4         2               a                   3
5         2               b                   3
6         3               a                   2
7         3               b                   1

我希望得到所有不同的item_id,其中包含数量大于1的属性“a”,同时属性“b”的数量大于2。

如果我把

select item_id
from table_name
where (attribute = a and quantity > 1) and (attribute = b and quantity >2)

我没有结果......

我如何做到这一点?请有人帮助我快速拿到我下周要到的报纸。

3 个答案:

答案 0 :(得分:1)

将您的where子句更改为:

WHERE (attribute = a and quantity > 1) OR (attribute = b and quantity >2)

您选择:

SELECT DISTINCT item_id

答案 1 :(得分:0)

试试这个

   select item_id
   from Table1
   where (attribute = 'a' and quantity > 1) or (attribute = 'b' and quantity >2)
   group by item_id

SQL DEMO HERE

答案 2 :(得分:0)

编辑:解决了! 经过一个小时的搜索,我找到了这个问题,它与我的基本相同,并且有一个有效的答案(第一个)。

SQL - Select Query for complex dynamic rows

基本上,这个人所做的就是根据需要多次将表连接到自身,添加下一个条件作为后续连接表的不同命名条件。