如何从SQL中的单个列中选择满足多个条件的行?

时间:2015-09-01 19:18:17

标签: sql select

我有一个与此类似的问题:

SQL: how to select a single id ("row") that meets multiple criteria from a single column

但就我而言,这些值对并不是唯一的,例如:

user_id可以与多个相同的祖先配对(多个行具有相同的user_id - 祖先)。

这可能是一个好的有效解决方案吗?

必须通过条件的祖先数组可能很大且可变(直到200)这使我认为连接解决方​​案效率非常低。此外,由于值对不是唯一的,“in..group by”解决方案将不起作用。

1 个答案:

答案 0 :(得分:1)

如果我错了,请纠正我。你想知道哪个user_id有X个祖先(X是可变数量的祖先)?

Select t.user_id
from (select distinct * 
      from your_table) t
where t.ancestry in XAncestors
group by t.user_id
having count(t.user_id) = length(XAncestors)

只是为了澄清,这是与您发布的问题完全相同的查询,但在from中使用子查询仅选择不同的值