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

如何理解上面这句话?

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

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

为什么通常多表联查比子查询效率好?
相关推荐
Re.不晚1 分钟前
Redis——集群
数据库·redis·缓存
X54先生(人文科技)2 分钟前
千问回答用户启蒙灯塔起源团的基于“和清寂静”内核碳硅协同对位法的千问吸收情况
数据库·人工智能·开源·ai编程
哈库纳玛塔塔3 分钟前
AI 时代,使用 dbVisitor 读写向量化数据
数据库·人工智能·mybatis
虹科网络安全4 分钟前
【Redis实用技巧#12】如何向 Redis 批量写入海量数据?
数据库·redis·php
冰暮流星4 分钟前
sql语言之having语句使用
java·数据库·sql
虹科网络安全6 分钟前
艾体宝洞察 | “关系+图”混用VS艾体宝ArangoDB多模型数据库,为什么混用的架构越复杂?
数据库·oracle·架构
麦聪聊数据8 分钟前
从数据采集到 API 市场的完整技术链路
数据库·sql·低代码·微服务
qh0526wy10 分钟前
python 连接Oracle 数据库厚连接方式
数据库·oracle
wanderful_11 分钟前
MySQL当中的修改外键关联主键字段属性
数据库·mysql
小刘的大模型笔记11 分钟前
POP原理落地到实际微调
数据库·人工智能·深度学习·算法·机器学习