【问题标题】:SQLite SELECT with JOIN to result all relationship dataSQLite SELECT 与 JOIN 生成所有关系数据
【发布时间】:2012-12-13 19:36:29
【问题描述】:

我有一个 db 架构,但我对 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的关系数据。

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

【问题讨论】:

    标签: tsql android-sqlite


    【解决方案1】:

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

    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
    

    【讨论】:

      【解决方案2】:

      我真正需要的是:

      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
      

      【讨论】:

        猜你喜欢
        • 2021-06-09
        • 2020-04-26
        • 1970-01-01
        • 1970-01-01
        • 2022-01-11
        • 1970-01-01
        • 2012-03-07
        • 2015-12-19
        • 1970-01-01
        相关资源
        最近更新 更多