Closed. This question is off-topic。它当前不接受答案。
想改善这个问题吗? Update the question,所以它是on-topic,用于堆栈溢出。
2年前关闭。
有了这个模式,怎么可能
查找仅保留绿船的所有水手姓名
我只能设法让所有保留绿船的水手
任何帮助,将不胜感激
希望这可以帮助!!!
想改善这个问题吗? Update the question,所以它是on-topic,用于堆栈溢出。
2年前关闭。
Sailor (SID, Sname, Age)
Boat (BID, Bname, Color)
Reserve (SID, BID, Day) ------
有了这个模式,怎么可能
查找仅保留绿船的所有水手姓名
我只能设法让所有保留绿船的水手
任何帮助,将不胜感激
最佳答案
在此查询中,我选择了所有保留了“绿色”以外的船只的水手。他们可能也采用了绿色,但其SID将在“ in”查询中被捕获。外部查询(从外向内)将排除并通过“ where”子句中的“ not in”语句提供仅保留绿船的水手。
您也可以使用左联接来执行同样的操作,而不是使用“不在”子句,但我更喜欢“不在”而不是“左联接”,因为这比“左联接”更有效,特别是在大型表的情况下
尝试这个:-
Select a.SID,a.Sname,a.Age
from
Sailor a
inner join
Reserve b
on a.SID=b.SID
inner join
Boat c
on b.BID=c.BID
where c.Color='green'
and a.SID not in
(
Select a.SID
from
Sailor a
inner join
Reserve b
on a.SID=b.SID
inner join
Boat c
on b.BID=c.BID
where c.Color <> 'green'
) ;
希望这可以帮助!!!
关于mysql - SQL查询水手,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43976488/
10-12 05:55