0

我有一个数据库模式,但我对 T-SQL 不太熟悉,我知道,ORM 毁了我。开发人员:)

这是架构。

Table1 1 - 1 到三个表(Table2、Table3、Table4)和每个 Table(2,3,4) 1 - 1 到一个 Table5。

图形(尝试)表示:

Table1  1<->1 Table2 1<->1 Table5
        1<->1 Table3 1<->1 Table5
        1<->1 Table4 1<->1 Table5

我需要一个查询来检索所有 Table1 记录及其对应的关系数据,Table1、Table2、Table3 及其与 Table5 的关系数据。

任何帮助表示赞赏。谢谢你。

4

2 回答 2

0

在没有看到完整的表结构和列名的情况下,您应该能够以类似的方式连接表:

select *
from table1 t1
left join table2 t2
    on t1.id = t2.id
left join table3 t3
    on t1.id = t3.id
left join table4 t4
    on t1.id = t4.id
left join table5 t5
    on t2.id = t5.id
    or t3.id = t5.id
    or t4.id = t5.id
于 2012-12-13T19:40:37.890 回答
0

我真正需要的是:

SELECT F.*, DE.Title as EnergyDrinkTitle, DE.[Picture] AS EnergyPicture, DI.Title AS InspDrinkTitle, DR.Title AS RelaxDrinkTitle 
FROM
(Select M.*, E.DescriptionTitle, I.[DescriptionTitle], R.DescriptionTitle, 
E.[DrinkId] as EnergyDrink, I.DrinkId as InspDrink, R.[DrinkId] as RelaxDrink
FROM  [Member] M
LEFT JOIN [Energy] E
    ON M.[_id] = E.[MemberId]
LEFT JOIN [Inspiration] I
    ON M.[_id] = I.[MemberId]
LEFT JOIN [Relax] R
    ON M.[_id] = R.[MemberId]
) AS F JOIN Drink DE ON F.EnergyDrink = DE._id
JOIN Drink DI ON F.InspDrink = DI._id
JOIN Drink DR ON F.RelaxDrink = DR._id
于 2012-12-14T11:08:29.287 回答