【问题标题】:How to query multiple tables with same named FK, using a paramater如何使用参数查询具有相同名称 FK 的多个表
【发布时间】:2023-03-08 00:34:01
【问题描述】:

Sqlite:

假设我有 3 个表,A、B 和 C,每个表都有一个唯一的列(colA、colB、colC(实际上,每个表都有几列,但我只想要一个列))和一个具有相同名称的外键列(我们称之为 Idx)。

现在,假设我想选择 A.colA、b.colB、c.colC WHERE idx=:idx

也就是说,我想将Idx作为参数传递给查询。

这是我的问题:查询是什么?

【问题讨论】:

    标签: sql sqlite


    【解决方案1】:

    有几种方法,但我认为最好的方法是显式加入查询,然后在where 子句中检查id

    SELECT A.colA, b.colB, c.colC
    FROM A join
         B
         on A.idx = B.idx join
         C
         on A.idx = C.idx
    WHERE A.idx = :idx;
    

    这使用inner join,假设id 在所有三个表中。

    请注意,如果任何表中有多行具有 idx 值,那么您将从查询中获得多行。

    【讨论】:

      猜你喜欢
      • 2022-01-12
      • 1970-01-01
      • 2016-02-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-14
      • 2014-07-25
      相关资源
      最近更新 更多