当前位置: 首页 > 知识库问答 >
问题:

一个中需要多个select查询的SQL查询

丁灿
2023-03-14

我现在在大学学习数据库,在我的项目中,我有3个表:联赛团队

  • 联赛(leagueId,leagueName)
  • 团队(teamId,teamName)
  • 具有(leagueId,teamId,year)
  League                    Team                          Has
  leagueid | leaguename     teamid | teamname       leagueid | teamid | year
  1        |  SerieA           1   | Juventus          1     |   1    | 2016
  2        | ChampionsL.       2   | Man.Utd           2     |   1    | 2016
  3        |  PremierL.        3   | Arsenal           3     |   2    | 2016
                                                       2     |   3    | 2013
                                                       2     |   3    | 2014
Team_Name  |  League_Name
 Juventus  |  SerieA
 Juventus  |  ChampionsL
select
    t.teamname,
    l.leaguename
from
    team t,
    league l,
    has h
where
    t.teamid   = h.teamid and
    h.leagueid = l.leagueid 
group by
    t.teamname,
    l.leaguename
having
    count( l.leagueid ) >= 2

共有1个答案

左丘阳晖
2023-03-14

试试这个。对我有效。

CREATE TABLE League ( leagueId INT PRIMARY KEY NOT NULL, leagueName VARCHAR(20)); 
GO

CREATE TABLE Team ( TeamId INT PRIMARY KEY NOT NULL, TeamName VARCHAR(20))
 GO
CREATE TABLE Has ( TeamId INT FOREIGN KEY (TeamId) REFERENCES Team(TeamId), 
                    leagueId INT FOREIGN KEY(leagueId) REFERENCES League(leagueId)) 


SELECT tn.TeamName, lg.leagueName
FROM Team tn
JOIN Has ha ON tn.TeamId = ha.TeamId
JOIN League lg ON ha.leagueId = lg.leagueId 
WHERE tn.TeamId IN (
                    SELECT  h.TeamId
                    FROM Team t
                    JOIN Has h ON t.TeamId = h.TeamId
                    JOIN League l ON h.leagueId = l.leagueId 
                    GROUP BY h.TeamId
                    HAVING COUNT(h.leagueId) > 2)
 类似资料:
  • 问题内容: 假设我有两个表,并且 我想在一个查询中将来自某些输入的数据插入到表中,该怎么做? 请,如果可以做到,请解释语法。 问题答案: MySQL不支持在单个INSERT语句中进行多表插入。奇怪的是,Oracle是我所知道的唯一一个…

  • 问题内容: 桌子: 我的查询: 我收到“ MySQL子查询返回多个行”错误。 我知道此查询可以使用以下查询的解决方法: 然后使用php循环遍历结果并执行以下查询以获取和回显它: 但是我认为可能会有更好的解决方案? 问题答案: 简单的解决方法是在子查询中添加一个子句: 一个更好的选择(就性能而言)是使用联接:

  • 问题内容: 我有3个变量:,和。 如何设置并执行一次此查询? 问题答案:

  • 问题内容: 我有以下实体: 而且我想使用JPQL查询来获取包含已加入主题和已加入帖子的所有类别。我被写成如下查询: 但是我得到了错误 我找到了有关此错误的文章,但这些文章仅描述了在一个实体中有两个要加入的集合的情况。我的问题有点不同,我不知道如何解决。 是否可以在一个查询中执行? 对不起,我的英语不好,但我通常会说其他语言 问题答案: 您可以使用Child-Parent提取策略,并根据结果重新组合

  • 问题内容: 我有一个带下表的sqlite数据库: 两个示例记录如下所示: (大麦的球队输了,安娜的赢了。每场比赛每队都有几名球员。)我想创建一个查询,该查询将返回所有有x个玩家在一个团队而y个玩家在另一个团队的游戏,以及这些游戏的累积结果。游戏。 我知道如何使用perl和csv文件来执行此操作,并且我相信我可以对dbi接口使用相同的方法。但是,我想学习如何仅使用SQL查询来创建此报告。我是SQL的

  • 问题内容: 我有一个表,它与其他表具有多个一对多的关系。假设主表是一个人,其他表则代表宠物,汽车和儿童。我想要一个查询,该查询返回人员的详细信息,他们拥有的宠物,汽车和儿童的数量,例如 做这个的最好方式是什么? 问题答案: 子查询分解(9i +): 使用内联视图: