【问题标题】:How to use JOIN on database.如何在数据库上使用 JOIN。
【发布时间】:2013-01-03 20:03:26
【问题描述】:

(SQLite 和 C#) 我有这个小问题。见那两张表。 1.是父母,2.是孩子

我应该从父表中获取“broj_goluba”以匹配子表中的“par_m”和“par_z”,然后将其显示在 datagridview 中。

外键应该有助于快速完成工作,但在这里,当我编写代码时,与不使用外键相比,我有更多的代码行。

有人可以帮我写下我的代码(编辑:SQL 查询)在使用外键时的样子。

【问题讨论】:

  • 您要根据 par_m 或 par_z 检索 broj_goluba 吗? par_m 和 par_z 在任何给定行中的值都不相同,那么由哪一个决定要查找的 ID?
  • 没错。数据库要大得多,所以我没有在这里显示所有内容,但它们存在

标签: c# sqlite foreign-keys


【解决方案1】:

我知道您需要的是,但它与速度无关。也许你的意思是INDEX 而不是FOREIGN KEY

SELECT BROJ_GOLUBA
FROM TABLE1
INNER JOIN TABLE2 ON (TABLE1.ID = TABLE2.PAR_M OR TABLE1.ID = TABLE2.PAR_J)

或者你可能需要两个值相等:

SELECT BROJ_GOLUBA
FROM TABLE1
INNER JOIN TABLE2 ON (TABLE1.ID = TABLE2.PAR_M AND TABLE1.ID = TABLE2.PAR_J)

【讨论】:

    【解决方案2】:

    不存在“帮助快速完成工作”的外键。它们的存在是为了强制数据完整性。坦白说,我看不出你写的 T-SQL 代码行数是如何依赖于外键是否存在的。

    以下查询存根应该可以帮助您开始查询:

    Select Table1.broj_goluba, Table2.par_z ...
    From Table1
    Inner Join Table2 on Table1.ID = Table2.par_m
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-12-24
      • 1970-01-01
      • 1970-01-01
      • 2011-10-10
      • 2013-04-27
      • 1970-01-01
      • 2019-03-09
      • 1970-01-01
      相关资源
      最近更新 更多