0

假设我有下表的用户属性:

id, user_id  properties
1,  NULL,    prop_ss1
2,  NULL,    prop_ss2
3,  2,       prop_1
4,  2,       prop_2
5,  3,       prop_1
6,  3,       prop_2
7,  3,       prop_3
8,  4,       prop_1

给定一个 user_ids 数组,我如何获得所有 user_id 为 NULL 的属性的列表(如果您愿意,可以将其称为全局属性),或者在给定数组中的所有 user_ids 之间共享?

例如,给定一个数组 (2,3),我想得到:

prop_ss1
prop_ss2
prop_1
prop_2

或者,给定一个数组(2,3,4),我想得到:

prop_ss1
prop_ss2
prop_1
4

2 回答 2

1

尝试两个单独查询的 UNION:

SELECT properties FROM your_table WHERE user_id IS NULL

UNION

SELECT properties
FROM your_table
WHERE user_id IN (2, 3)
GROUP BY properties
HAVING COUNT(DISTINCT user_id) = 2

在线查看它:sqlfiddle

最后一行中的数字2是您要查询的用户数。

于 2012-12-24T01:28:17.483 回答
0
select distinct properties from table
where user_id is null
or user_id in (1,2,3)

抱歉误读了您的帖子,需要分组并拥有

于 2012-12-24T01:30:50.013 回答