我试图从只通过两个不同的表相关的表中获取数据。例如,我有信息“dataA”,需要获取信息“dataD”。查询数据取决于来自其他表的数据
我怎样写一个查询,显示数据A和dataD,因为它们涉及?我不想显示dataD的所有实例,只是与dataB和dataA相关的实例。如果这不合理,我很抱歉。
我试图从只通过两个不同的表相关的表中获取数据。例如,我有信息“dataA”,需要获取信息“dataD”。查询数据取决于来自其他表的数据
我怎样写一个查询,显示数据A和dataD,因为它们涉及?我不想显示dataD的所有实例,只是与dataB和dataA相关的实例。如果这不合理,我很抱歉。
您将使用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
,前提是你的每个表名下把“数据”项表示表中的列的工作,这是相当简单:
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'
之间的地址。
而你的问题很有意义。 :)我只是从图中不清楚你的想法。
dataA和dataD是如何关联的?有没有关系,我可以看到你张贴的图片 – Chandu 2015-04-01 20:23:10
我可能没有正确解释这一点,对不起。相当新的数据库。表1有dataA和dataB。表2具有dataC和与表1中相同的dataB。表3具有dataD和与表2中相同的dataC。 – Programmer 2015-04-01 20:26:19
'dataA'和'dataB'在'Table1'中是否有单独的列,还是代表单独的行? – 2015-04-01 20:27:22