查询数据取决于来自其他表的数据

时间:2015-04-01 20:21:48

标签: sql database sql-server-2008

我正在尝试从只通过两个不同表关联的表中获取数据。例如,我有信息“dataA”,需要获取信息“dataD”。

table data relationship

如何编写查询以显示dataA和dataD?我不想显示dataD的所有实例,只显示与dataB相关的实例,然后显示与dataA相关的实例。如果这没有足够的意义,我很抱歉。

2 个答案:

答案 0 :(得分:2)

您将使用JOIN来执行此操作。具体来说,在这种情况下,LEFT OUTER JOIN是您最好的选择。类似的东西:

SELECT
    Table1.dataA,
    Table3.dataD
FROM
    Table1
    LEFT OUTER JOIN Table2 ON Table1.dataB = Table2.dataB
    LEFT OUTER JOIN Table3 ON Table2.dataC = Table3.dataC

答案 1 :(得分:0)

假设"数据"您放在每个表名下的条目代表表中的列,这很简单:

select dataA
  ,    dataD
from   Table1 t1
    join Table2 t2
         on t1.dataB = t2.dataB
    join Table3 t3
         on T2.dataC = t3.dataC

如果您需要所有dataA,无论是否匹配dataD(或其他干预列),您都会更改我'join''left join'的位置

你的问题很有道理。 :)从图表中我只是有点不清楚你的想法。