【问题标题】:SQL Do we need to always join 2 tables when a table has an FK?SQL 当一个表有 FK 时,我们是否需要始终连接 2 个表?
【发布时间】:2014-05-07 12:56:55
【问题描述】:

我不知道这个问题有多合理,我一直在想这个问题。 假设我有 2 个表,表 A 和表 B。 在表 A 中我们有

TableA
--------
ID  int not null PK
ANOTHER_COLOLUMN String null,
....
TABLE_B_ID (FK, int, not null)

和表 B

TableB
-------
ID int not null PK,
....
....

我的问题是,我们是否总是需要拥有

select * from TableA inner join TableB on TableA.id = TableB.id

如果我只是使用 TableA(而我根本没有触摸 tableB)?

【问题讨论】:

  • 如果不需要TableB的任何信息,则无需加入TableB。
  • 你可以试试select * from TableA

标签: sql select inner-join


【解决方案1】:

没有。如果您没有使用 TableB 中存在的数据,则无需使用 FK 或连接。

【讨论】:

    【解决方案2】:

    您的查询

    select * from TableA inner join TableB on TableA.id = TableB.id
    

    将只返回表 A 中在表 B 中有相关记录的那些记录。

    在您的情况下,您需要使用以下队列:

    select * from TableA
    

    不管它有没有外键。

    【讨论】:

      猜你喜欢
      • 2020-09-06
      • 1970-01-01
      • 2012-12-29
      • 2013-02-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-04
      • 1970-01-01
      相关资源
      最近更新 更多