SQL让没有大前锋的球队

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL让没有大前锋的球队相关的知识,希望对你有一定的参考价值。

我在我的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。

我想得到一个没有大前锋的篮球队名单。

答案

就像是:

select *
from Teams
where Id not in 
  (
    select TeamId
    from TeamMembers
    where PositionID = 4
  )
另一答案

检查行是否不存在时,请使用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

以上是关于SQL让没有大前锋的球队的主要内容,如果未能解决你的问题,请参考以下文章

足球队

十分种算法小故事之Kmeans聚类算法

NBA里大前锋有3分能力的

求NBA三分球投的不错的大前锋,队名也要,越多越好

你觉得nba现役三分最好的大前锋是谁?

考前模拟冲刺2