来自不同表的SQL多连接引用表

时间:2017-05-11 14:09:52

标签: sql-server database join sql-server-2014

我正在使用MSSQL。只要我与购买我们软件的客户一起开展项目,我们就是最后一步。那时我们必须给他们一些SQL查询来从MSSQL数据库中获取一些报告。

由于我不熟悉SQL,因此我遇到了连接多个表的问题。

我搜索了一些并创建了一个查询,但问题是加入一个表与其他人没有共同列与我在FROM标记后注意到的表。

让我解释一下:

我有5张桌子“x”,“y”,“z”,“w”,“m”。

“x”表具有带“y”,“z”和“w”表的公共列

“m”表有一个带有“y”表的公共列

我想从“m”中为我的报告选择另一列,如何将“x”加入该表,

我该怎么做?

2 个答案:

答案 0 :(得分:1)

您可以将x连接到y,然后将x和y的组合连接到m。如果您希望结果只包含x和m的列,则不需要从y中选择任何列。类似的东西:

SELECT x.column_from_x, m.column_from_m
    FROM x
    JOIN y
    ON x.xy_common_column = y.xy_common_column
    JOIN m
    ON m.my_common_column = y.my_common_column

您可能需要的任何WHERE子句都可以遵循此操作。这里有一个更具体的例子:https://technet.microsoft.com/en-us/library/ms191430(v=sql.105).aspx

答案 1 :(得分:0)

由于M,Y和X有一些共同点,你可以使用下面的代码

SELECT
M.Col,
X,CoL
FROM M
INNER JOIN Y ON M.ID = Y.ID
INNER JOIN X ON Y.ID=X.ID