SQL 多表联查

SQL JOIN (w3school.com.cn)

SQL join用于根据两个或多个表中的列之间的关系,从这些表中查询数据。
之前跟着老师学数据库的时候学过,最近又在比较频繁的使用,再复习一下。
Person表:

Id_P :居民编号。主键

LastName:姓

FirstName:名

Address: 地址

City: 城市


Orders表:

Id_O :主键

OrderNo

Id_p :外键,是Person表中的主键

写法1:使用where

SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo FROM Persons, Orders WHERE Persons.Id_P = Orders.Id_P

写法2:使用inner join

inner join:产生的结果集是两个表的交集。

SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo FROM Persons INNER JOIN Orders ON Persons.Id_P = Orders.Id_P ORDER BY Persons.LastName

写法1与写法2的区别:

INNER JOIN与直接列出两个表并设置where条件:

在功能上是等价的,但它们在语法和可读性方面有所不同。
直接列出两个表:

这种方法是SQL早期版本的遗留方式,不使用显式的JOIN关键字,而是通过WHERE子句来指定连接条件。

SQL JOIN的5种类型:

MySQL: 图解 inner join、left join、right join、full outer join、union、union all的区别_mysql中union和inner join区别-CSDN博客

确保JOIN条件正确是避免产生笛卡尔积(Cartesian product)的关键

如何理解上面这句话?

嵌套查询与多表联查哪种效率更高?

居然说通常多表联查比子查询效率好!!!

为什么通常多表联查比子查询效率好?
相关推荐
DevOpenClub几秒前
职教高考及高职分类招生控制线 API 接口
java·数据库·高考
funnycoffee1232 分钟前
华为S5736交换机3层ECMP负载方式
linux·服务器·数据库
添砖java‘’2 分钟前
MySQL复合查询
数据库·mysql
星川水月5 分钟前
Access数据库快速入门——外部数据导入和SQL简单查询
数据库·sql·access
ElevenS_it1888 分钟前
MySQL慢查询监控与告警实战:从slow_log采集到分钟级定位慢SQL的完整链路配置
android·sql·mysql
清平乐的技术专栏21 分钟前
一文读懂Kafka中的“消费”(对标MySQL数据库)
数据库·mysql·kafka
i220818 Faiz Ul23 分钟前
智慧养老平台|基于SprinBoot+vue的智慧养老平台系统(源码+数据库+文档)
java·前端·数据库·vue.js·spring boot·毕设·智慧养老平台
IT策士30 分钟前
Django 从 0 到 1 打造完整电商平台:登录与登出功能实现
数据库·django·sqlite
程序边界35 分钟前
标量子查询消除与向量化:一个被低估的协同效应
数据库
zero.cyx36 分钟前
软件设计师(4)数据库
数据库