这可能吗?
查询:
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?
相匹配答案 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具有的其他能力的行。