10丨常用的SQL标准有哪些,在SQL92中是如何使用连接的?
该思维导图由 AI 生成,仅供参考
- 深入了解
- 翻译
- 解释
- 总结
SELECT t1.team_name AS team1, t2.team_name AS team2 FROM team t1 CROSS JOIN team t2 WHERE t1.team_name < t2.team_name;
《SQL 必知必会》,新⼈⾸单¥68
全部留言(70)
- 最新
- 精选
- mickey置顶/* team 表做一道动手题,表格中一共有 3 支球队,现在这 3 支球队需要进行比赛,请用一条 SQL 语句显示出所有可能的比赛组合。 */ #分主客队 SELECT CONCAT(kedui.team_name, ' VS ', zhudui.team_name) as '客队 VS 主队' FROM team as zhudui LEFT JOIN team as kedui on zhudui.team_id<>kedui.team_id; 客队 VS 主队 ------------------------------------ 底特律活塞 VS 印第安纳步行者 底特律活塞 VS 亚特兰大老鹰 印第安纳步行者 VS 底特律活塞 印第安纳步行者 VS 亚特兰大老鹰 亚特兰大老鹰 VS 底特律活塞 亚特兰大老鹰 VS 印第安纳步行者 #不分主客队 SELECT a.team_name as '队伍1' ,'VS' , b.team_name as '队伍2' FROM team as a ,team as b where a.team_id<b.team_id; 队伍1 VS 队伍2 ------------------------------------ 底特律活塞 VS 印第安纳步行者 底特律活塞 VS 亚特兰大老鹰 印第安纳步行者 VS 亚特兰大老鹰
作者回复: 可以看下这个留言,解释的很详细
2019-07-0312101 - 奕有两个问题: 1: 在进行连接查询的时候,查询的顺序是什么呢? 是先进行笛卡尔积在进行条件条件筛选吗? 2: 在进行连接查询的时候 on 中的条件和 where 中的条件有什么区别呢? 这两个的筛选顺序一样吗?
作者回复: 1、查询顺序是:FROM > WHERE > GROUP BY > HAVING > SELECT 的字段 > DISTINCT > ORDER BY > LIMIT 可以看下05篇后面的内容。 你说的正确,是先进行 CROSS JOIN 求笛卡尔积,然后进行条件筛选。 2、执行的顺序会先进行ON连接,然后进行WHERE筛选。ON连接是一般连接表的方式,当我们得到数据之后,再会对数据行进行条件筛选
2019-07-05225 - 长安落雪SELECT t1.team_name,t2.team_name FROM team as t1 LEFT JOIN team as t2 ON t1.team_id != t2.team_id SELECT t1.team_name , t2.team_name FROM team as t1 ,team as t2 where t1.team_id<t2.team_id;
作者回复: 正确,大家可以参考下这个。如果是分主客场的话,是第一个SQL。如果是不重复的两个球队的比赛的话,是第二个SQL。
2019-07-0421 - 圆子蛋三队对阵的可能组合: SELECT * FROM team AS a,team AS b WHERE a.team_id < b.team_id 主客场对阵的可能(只列出名字的话是不是可以这样?) SELECT a.team_name as 主场,b.team_name as 客场 FROM team AS a,team AS b WHERE a.team_id != b.team_id
作者回复: 这两个SQL都正确
2019-07-0335 - SamsonSQL:SELECT p.player_name, p.height, h.height_level FROM player AS p, height_grades AS h WHERE p.height BETWEEN h.height_lowest AND h.height_highest 老师,我还是不能够理解这条语句中WHERE之后的部分,可以麻烦详加解释一番吗? 另外,对于外连接的两个例子,可以把已经结果也贴一下吗?感觉这样子下效果会更好
作者回复: SELECT p.player_name, p.height, h.height_level FROM player AS p, height_grades AS h WHERE p.height BETWEEN h.height_lowest AND h.height_highest 我们是用的两张表进行连接,会显示出来height,然后你需要显示height对应的height_level,这个height_level在height_grades数据表中可以查询,也就是用WHERE条件进行筛选,把对应的height_level找出来,WHERE条件为:WHERE p.height BETWEEN h.height_lowest AND h.height_highest
2019-07-0534 - 野马那一个RDBMS支持多个SQL标准吗?
作者回复: 这是一个好问题,有的时候是同时支持的,比如: SELECT * FROM a, b 和 SELECT * FROM a JOIN b 但有的时候又不支持,比如在MySQL中不支持SQL92标准下的 +号方式的外连接,但是支持SQL99的外连接方式。 具体还需要参考RDBMS相关的文档,即使是同一个标准,每个RDBMS都有自己的“方言”,使用的语法也有差异。
2019-07-044 - 技术修行者目前主流的DNMS应该都是按照SQL99的规定来设计连接操作的,在实际工作中,极少看到SAL语句中带+的情况。我的建议是在介绍了基本概念后,可以直接使用SAL99,这样更有利于实战。
作者回复: 对 后面有讲解到SQL99
2019-10-023 - 太精select * from team as a, team as b where a.team_id != b.team_id; +---------+-----------------------+---------+-----------------------+ | team_id | team_name | team_id | team_name | +---------+-----------------------+---------+-----------------------+ | 1002 | 印第安纳步行者 | 1001 | 底特律活塞 | | 1003 | 亚特兰大老鹰 | 1001 | 底特律活塞 | | 1001 | 底特律活塞 | 1002 | 印第安纳步行者 | | 1003 | 亚特兰大老鹰 | 1002 | 印第安纳步行者 | | 1001 | 底特律活塞 | 1003 | 亚特兰大老鹰 | | 1002 | 印第安纳步行者 | 1003 | 亚特兰大老鹰 | +---------+-----------------------+---------+-----------------------+
作者回复: 主队,客队的话 是这样的
2019-07-043 - xy表怎么下载下来的?
作者回复: GitHub上有SQL文件,然后导入到MySQL里
2019-07-1522 - Goal老师好, 1. 文中“等值连接” 的结果图配错了,此处应该是只有:底特律活塞、印第安纳步行者的37名成员的表; 2. 思考题,主客场共计6场比赛 SELECT a.team_name,b.team_name from team a,team b WHERE a.team_id != b.team_id SELECT a.team_name,b.team_name FROM team a JOIN team b WHERE a.team_name <> b.team_name
编辑回复: 您好,文章已进行更正,谢谢您的反馈。
2019-07-032