我想选择ID符合第2列中条件的行:首先是Apple,然后是Orange。理想的答案是ID = 1的前2行。
我添加了两个支持列Column11和column12来标记一个ID的哪一行是第一行,哪一行是第二行。下面是我的代码,但未选择任何行。
SELECT * FROM table WHERE Column11=1 and Column2=’Apple’ AND Column12=1 AND Column2=’Orange’
如果我仅在下面使用,我将获得第1行
SELECT * FROM table WHERE Column11=1 and Column2=’Apple’
如果仅在下面使用,我将获得第2行
SELECT * FROM table WHERE Column12=1 AND Column2=’Orange’
为什么把它们放在一起,我什么也没得到?请帮忙。谢谢!
答案 0 :(得分:1)
试试这个-
SELECT * FROM your_table
WHERE ID IN
(
SELECT ID FROM your_table
WHERE Column2 IN ('Apple','Orange')
GROUP BY ID
HAVING COUNT(Column2) = COUNT(DISTINCT Column2)
)
AND
(
(Column11=1 and Column2='Apple')
OR (Column12=1 AND Column2='Orange')
)