如何获取 sql table 的所有名称?
How to get all names for a sql table?
我在获取所有人的姓名以及他们是否打橄榄球时遇到问题。
如果他们播放则显示 Yes
否则显示 No
。目前,我只得到一个打橄榄球的人的单一结果,而不是其他不打橄榄球的人的结果。谁能帮帮我?
当前 SQL:
select P1.name, case when S.sport = 'rugby' then 'Yes' else 'No' end as rugby
from Persons P1,
Persons P2,
SportTogether S
where P1.id = S.personA_id
and P2.id = S.personB_id
and S.sport = 'rugby'
group by case when S.sport = 'rugby' then 'Yes' else 'No' end;
我认为您使用了错误的方法。你想要 select 人,所以 select 来自 table 人。您想知道一个人是否打橄榄球,所以请查看橄榄球中的人 table。可以使用 IN
或 EXISTS
.
进行查找
select
name,
case when exists
(
select null
from sporttogether s
where s.sport = 'rugby'
and p.id in (s.persona_id, s.personb_id)
) then 'Yes' else 'No' end as plays_rugby
from persons p
order by name;
我在获取所有人的姓名以及他们是否打橄榄球时遇到问题。
如果他们播放则显示 Yes
否则显示 No
。目前,我只得到一个打橄榄球的人的单一结果,而不是其他不打橄榄球的人的结果。谁能帮帮我?
当前 SQL:
select P1.name, case when S.sport = 'rugby' then 'Yes' else 'No' end as rugby
from Persons P1,
Persons P2,
SportTogether S
where P1.id = S.personA_id
and P2.id = S.personB_id
and S.sport = 'rugby'
group by case when S.sport = 'rugby' then 'Yes' else 'No' end;
我认为您使用了错误的方法。你想要 select 人,所以 select 来自 table 人。您想知道一个人是否打橄榄球,所以请查看橄榄球中的人 table。可以使用 IN
或 EXISTS
.
select
name,
case when exists
(
select null
from sporttogether s
where s.sport = 'rugby'
and p.id in (s.persona_id, s.personb_id)
) then 'Yes' else 'No' end as plays_rugby
from persons p
order by name;