我将关于篮球队的数据存储在我的Teams
表中,如下所示:
CREATE TABLE Teams (
Id varchar(5) NOT NULL PRIMARY KEY,
TeamName varchar(50) NOT NULL
);
我将团队成员保留在TeamMembers
表格中,如下所示:
CREATE TABLE TeamMembers (
Id int NOT NULL PRIMARY KEY,
TeamId VARCHAR(5) FOREIGN KEY REFERENCES Teams(Id),
LastName varchar(50) NOT NULL,
FirstName varchar(50) NOT NULL,
PositionId int NOT NULL
);
位置位于另一个包含INT
ID的表格中。例如,本练习中的Guard:1,Center:2和Power Forward:3。
我希望获得没有大前锋的篮球队名单。
答案 0 :(得分:0)
类似的东西:
select *
from Teams
where Id not in
(
select TeamId
from TeamMembers
where PositionID = 4
)
答案 1 :(得分:0)
检查行是否不存在时,请使用NOT EXISTS
!
SELECT
T.*
FROM
Teams AS T
WHERE
NOT EXISTS (
SELECT
'team has no power forward member'
FROM
TeamMembers AS M
WHERE
M.TeamID = T.ID AND
M.PositionID = 3) -- 3: Power Forward