小编W. *_*ung的帖子

SQL:如何从单个列中选择满足多个条件的单个id("row")

我有一个非常狭窄的表:user_id,ancestry.

user_id列是自解释的.

祖先列包含用户祖先欢呼的国家/地区.

用户可以在表上有多行,因为用户可以拥有来自多个国家/地区的祖先.

我的问题是:如何选择其祖先来自多个指定国家/地区的用户?

例如,向我展示所有拥有来自英格兰,法国和德国的祖先的用户,并返回符合该标准的每个用户1行.

什么是SQL?

 user_id     ancestry

---------   ----------

    1        England
    1        Ireland
    2        France
    3        Germany
    3        Poland
    4        England
    4        France
    4        Germany
    5        France
    5        Germany
Run Code Online (Sandbox Code Playgroud)

在上述数据的情况下,我预计结果为"4",因为user_id 4具有来自英格兰,法国和德国的祖先.

提前致谢.

PS澄清:是的,user_id/ancestry列创建一个唯一的对,因此不会为给定用户重复一个国家/地区.

PPS我在寻找来自3个国家的用户 - 英格兰,法国和德国(以及这些国家是任意的).

PPPS我不是在寻找特定于某个RDBMS的答案.我想"一般地"回答这个问题.

我满足于为每个查询重新生成where子句,前提是可以通过编程方式生成where子句(例如,我可以构建一个函数来构建WHERE/FROM - WHERE子句).

sql select

23
推荐指数
4
解决办法
10万
查看次数

标签 统计

select ×1

sql ×1