SQL SELECT JOIN查询多个表

时间:2017-11-30 22:17:04

标签: sql erp

我正在尝试获取有关建筑物中安装的数据。问题是一个建筑可以有多个安装,我不确定如何调整我的sql,因为我查询的初始表只保存拥有建筑物的关系。 这是情况。 表1(RELRLGRP)保持组的id,即拥有具有我需要的数据的安装的建筑物的关系。

这是我到目前为止所做的,我担心我不应该在SQL语句中使用这么多连接,但是在关系组的起点到安装之间找不到我需要的信息之间的更快联系我在BORGINST表中寻找的数据。请忽略声明的选择部分(为清楚起见,将其删除)。

SELECT *
FROM RELRLGRP A
JOIN RELATION R ON A.RELATION_GC_ID = R.GC_ID 
JOIN BUILDING G ON R.CODE = G.GC_CODE
JOIN INSTALL I ON G.GC_CODE = I.GC_CODE
JOIN BORGINST B ON I.GC_ID = B.GC_ID
WHERE A.RELGROUP_GC_ID LIKE '100109' (<- the group the relations belong to)

我已经完成了一些基本的SQL,但这种通过表格连接对我来说是一个新的领域,从这个意义上说,我很高兴知道这么多连接语句是否可行,或者我是否应该完全采用不同的方法

2 个答案:

答案 0 :(得分:0)

不要出汗:我的观点是连接次数的三倍。每个连接确实增加了复杂性并吸收了更多的处理器,但它实际上归结为性能:如果这个过程没有尽快完成,你可以查看其他方法,但是否则这样的多个连接是完美的细

答案 1 :(得分:0)

JesseJ - 由于我不知道表中存在的所有列,因此我假设您正在加入主键。如果是这种情况,您的解决方案可能是唯一可用于将RELRLGRP链接到BORGINST表的解决方案。

像您一样链接多个表在标准化数据库中很常见。

示例:

Finding the State in which a Sales Transaction Happened

在我发布的示例中,为了找到特定事务​​发生的状态,您必须将所有表链接在一起。没有捷径。