2015-04-01 108 views
0

我试图从只通过两个不同的表相关的表中获取数据。例如,我有信息“dataA”,需要获取信息“dataD”。查询数据取决于来自其他表的数据

table data relationship

我怎样写一个查询,显示数据A和dataD,因为它们涉及?我不想显示dataD的所有实例,只是与dataB和dataA相关的实例。如果这不合理,我很抱歉。

+0

dataA和dataD是如何关联的?有没有关系,我可以看到你张贴的图片 – Chandu 2015-04-01 20:23:10

+0

我可能没有正确解释这一点,对不起。相当新的数据库。表1有dataA和dataB。表2具有dataC和与表1中相同的dataB。表3具有dataD和与表2中相同的dataC。 – Programmer 2015-04-01 20:26:19

+1

'dataA'和'dataB'在'Table1'中是否有单独的列,还是代表单独的行? – 2015-04-01 20:27:22

回答

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 
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'之间的地址。

而你的问题很有意义。 :)我只是从图中不清楚你的想法。

相关问题