SQL让没有大前锋的球队

时间:2018-05-03 23:51:51

标签: sql-server tsql

我将关于篮球队的数据存储在我的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。

我希望获得没有大前锋的篮球队名单。

2 个答案:

答案 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