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)的关键

如何理解上面这句话?

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

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

为什么通常多表联查比子查询效率好?
相关推荐
king_harry6 分钟前
PostgreSQL WAL 原理剖析、日志堆积治理与流复制监控
数据库·postgresql·wal·流复制
默默前行的虫虫6 分钟前
nicegui网页多用户数据隔离总结
数据库·sql
特立独行的猫a27 分钟前
PostgreSQL客户端工具介绍:从性能测试到跨平台管理
数据库·docker·postgresql·客户端·pgadmin4
微爱帮监所写信寄信27 分钟前
微爱帮监狱写信寄信小程序:MySQL核心日志与备份恢复安全架构
数据库·mysql·小程序·邮局·监狱寄信·挂号信·邮政
isNotNullX1 小时前
数据迁移怎么做?有什么好用的数据库迁移工具推荐吗?
数据库·数字化·数据迁移·企业管理
云老大TG:@yunlaoda3601 小时前
华为云国际站代理商DAS的跨境合规适配的应用场景有哪些?
网络·数据库·华为云
3824278272 小时前
python3网络爬虫开发实战 第二版:绑定回调
开发语言·数据库·python
wniuniu_2 小时前
ceph的参数
java·数据库·ceph
一只专注api接口开发的技术猿2 小时前
智能决策数据源:利用 1688 商品详情 API 构建实时比价与供应链分析系统
大数据·前端·数据库
山峰哥2 小时前
SQL查询优化秘籍:从Explain分析到性能飞跃
开发语言·数据库·sql·oracle·性能优化·系统优化