匹配具有子查询中返回的所有行的行

时间:2015-03-22 00:13:37

标签: sql sqlite relational-division

这可能吗?

查询:

select name,id
from player
join player_ability on pid=id
where ability = (select ability
                 from player_ability
                 where player=2)

我的子查询返回X和Y. (select ability from player_ability where player=2)

我的主查询将匹配包含X Y,两者的所有行。

如何确保我的主查询结果与X Y?

相匹配

2 个答案:

答案 0 :(得分:0)

我相信您需要按以下方式修改子查询:

select name,id
from player
join player_ability on pid=id
where ability IN (select ability
    from player_ability
    where player=2
    group by ability having count(ability) > 1

答案 1 :(得分:-1)

根据您在问题中提到的内容,子查询似乎返回多行。在这种情况下,您无法使用' ='运营商。你需要使用' IN'运营商。如果玩家2具有X和Y的能力,则IN操作员将确保它将返回具有X或Y或两种能力的行。它还将返回玩家2具有的其他能力的行。