【发布时间】:2015-01-28 14:05:39
【问题描述】:
*假设这个 mySql 表:
id | group | members
1 | blue | Bob
2 | red | Tom
3 |green | Maria
4 |blue | Maria
5 |red | Bob
6 |red | Maria
7 |yellow | Bob
如何查询此表以获取成员同时在组“蓝色”和“绿色”中的行
在 where 子句中使用“IN”对我不起作用。
预期结果:“玛丽亚”
编辑:
也许我找到了一些东西...如果我在“IN”数组中使用 n 变量,那么我应该在“HAVING”部分使用相同的 n 值。 尝试使用此语句,它似乎有效。 (cmets赞赏)
SELECT id,members
FROM my_table
WHERE `team` IN('blue', 'red', 'green')
GROUP BY 成员
有 COUNT(不同的团队)>= 3
你有什么意见?
【问题讨论】:
-
显示你尝试过的查询
-
你试过什么查询?
-
@Jean-FrançoisSavard, @juergen_d, @TZHX 这是我的 sql 语句:SELECT id, member FROM my_table as f WHERE group IN('blue','green') GROUP BY members HAVING COUNT( DISTINCT
group) >= 2 如果“IN”子句中只有 2 个变量,则您的语句是可以的。但是如果我在其中添加第三个变量,我不会得到我所期望的。我的意思是,我希望得到 0 行。