0

非常に基本的なSQLの質問. 次のクエリの出力を 2 つではなく 1 つのテーブルとして表示したくありません。

select players.name
from players
inner join teams
on players.team = teams.name
where teams.staysat = 'Ambassador'
and teams.checkin is not null;

select fans.name
from fans
where fans.staysat = 'Ambassador'
and teams.checkin is not null;

選手名とファン名が 1 つの連続したリストとして出力されるように、これを書き直すにはどうすればよいでしょうか?

4

4 に答える 4

8

それらの間にユニオンを配置するだけです。とても簡単です

select players.name
from players
inner join teams
on players.team = teams.name
where teams.staysat = 'Ambassador'
and teams.checkin is not null;
Union
select fans.name
from fans
where fans.staysat = 'Ambassador'
and teams.checkin is not null;

重複した名前を省略したくない場合は、Union Allを配置する必要があります

于 2013-05-06T08:02:38.817 に答える
2

union allを使用してみてください:

select players.name
from players
inner join teams
on players.team = teams.name
where teams.staysat = 'Ambassador'
and teams.checkin is not null
union all
select fans.name
from fans
where fans.staysat = 'Ambassador'
and teams.checkin is not null;
于 2013-05-06T08:03:16.590 に答える
2

unionステートメントを使用する

select players.name as name
from players
inner join teams
on players.team = teams.name
where teams.staysat = 'Ambassador'
and teams.checkin is not null;
UNION (ALL)
select fans.name as name
from fans
where fans.staysat = 'Ambassador'
and teams.checkin is not null;
于 2013-05-06T08:03:23.787 に答える
1

Distinct値とすべての値 ( DuplicatesUnionを含む)に使用できますUnion All

ユニオンとユニオンオール

select players.name as Name
from players
inner join teams
on players.team = teams.name
where teams.staysat = 'Ambassador'
and teams.checkin is not null;
union(all)
select fans.name as Name
from fans
where fans.staysat = 'Ambassador'
and teams.checkin is not null;
于 2013-05-06T08:10:54.530 に答える