内部联接是默认执行的吗?

时间:2012-11-01 11:49:22

标签: sql database primary-key where-clause

我想知道为什么需要将(主键=外键)放在where语句中。表格通过这些标准彼此相关。那么,为什么每个人都在 where 子句或* join * s?

中使用它

我的意思是代替

  

选择a.name,b.name   从a,b   其中(a.fk = b.pk)AND(某事物=“某事物”)

如果有人说

  

...   选择a.name,b.name   从a,b   where(something =“something”)

会不够?

1 个答案:

答案 0 :(得分:2)

首先,不幸的是,不是每个人都使用外键。其次,不应该假设父表和子表应该通过相应表的PK和FK自动连接,即使这可能是最常见的。

SQL ANSI委员会的人都非常聪明。我确信他们已经考虑到了这一点,并认为目前的标准是最安全和最强大的。

BTW,关于Linq的一个非常好的事情是,如果表中定义了正确的FK,则不必指定连接。当然假设你正在做内部联接。假设你真的想加入PK和FK。