簡體   English   中英

SQL 結合兩個查詢結果2

[英]SQL combine two query results 2

查找船的名稱和船的 colors 以及預訂“綠色”船的水手的姓名。

我怎樣才能將它們結合在一起?

select B.bname, B.color
from Boats B

select S.sname
from Sailors S
where S.sid in (select s.sid
                from Sailors s, Reserves r, Boats b
                where s.sid = r.sid and r.bid = b.bid and b.color = 'green');

我試過這個,但我得到了重復

select B.bname, B.color, S.sname
from Boats B, Sailors S
where S.sid in (select s.sid
                from Sailors s, Reserves r, Boats b
                where s.sid = r.sid and r.bid = b.bid and b.color = 'green');

您可以使用join 您應該避免使用隱式連接以獲得最佳實踐,而是使用 ANSI join語法,如下所示。

select 
    b.bname, 
    b.color,
    s.sname
from Sailors s
join Reserves r
on s.sid=r.sid
join Boats b
on r.bid=b.bid
where b.color='green'  

如果上面的結果給你重復,那么你可以使用distinct as distinct b.bname

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM