sql - 如何理解四表连接查询
问题描述
我的问题基于来自以下链接的 asemprini87 的回答:How to Join 4 tables in SQL。(如果您有兴趣,请通过此链接查看原始表格)。
我的问题集中在:如何理解最后一个连接,以及为什么语法是正确的:两个表(p,pe)在最后一个条件下连接,与基础表(f)无关?
因为我也面临同样的问题:有4个表,但没有一个表与其他三个相关,我从那个链接找到答案,答案是正确的,但我不明白为什么它可以这样链接。
SELECT
f.nomeFornecedor,
e.idEncomenda,
p.nomeProduto,
pe.quantidade
FROM
Fornecedor as f
INNER JOIN
Encomenda AS e ON f.idFornecedor = e.idFornededor
INNER JOIN
Produto_Encomenda as pe ON e.idEncomenda = pe.idEncomenda
INNER JOIN
Produto as p ON p.idProduto = pe.idProduto
谢谢你。
解决方案
进行多个连接时,并非所有表都需要与单个表相关,只需要将每个附加表链接到先前表之一的关系链即可。
让我们看一个更简单的例子,我们有 4 个表:A、B、C 和 D。
- A与B有关
- B与C有关
- C与D有关
因此,表 C 和 D 与 A 没有直接关系,但通过关系链,我们可以在所有表中找到正确的行,过程如下:
- 从表 A 中获取一组行
- 将 A 和 B 之间的关系用于表 B 中的相关行
- 使用 B 和 C 的关系查找表 C 中的相关行
- 利用 C 和 D 的关系查找表 D 中的相关行
推荐阅读
- android - 带有 Firestore 回收器视图的动画不起作用
- django-rest-framework - djangorestframework-simplejwt 得到“没有找到具有给定凭据的活动帐户”虽然我知道我的用户存在
- python - Python:加速函数调用
- python - 类的特殊值
- javascript - jQuery无序附加HTML元素
- javascript - 如何以 1 秒的间隔从成员中删除角色?
- python - 从python中的span标签获取类名
- quantum-computing - IBMQ Paris 配置 Pickle 文件文档
- python - 如何在全局级别定义各种变量
- python - For循环(嵌套):如何遍历两列?