如何获取 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。可以使用 INEXISTS.

进行查找
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;