我想知道为什么需要将(主键=外键)放在where语句中。表格通过这些标准彼此相关。那么,为什么每个人都在 where 子句或* join * s?
中使用它我的意思是代替
选择a.name,b.name 从a,b 其中(a.fk = b.pk)AND(某事物=“某事物”)
如果有人说
... 选择a.name,b.name 从a,b where(something =“something”)
会不够?
答案 0 :(得分:2)
首先,不幸的是,不是每个人都使用外键。其次,不应该假设父表和子表应该通过相应表的PK和FK自动连接,即使这可能是最常见的。
SQL ANSI委员会的人都非常聪明。我确信他们已经考虑到了这一点,并认为目前的标准是最安全和最强大的。
BTW,关于Linq的一个非常好的事情是,如果表中定义了正确的FK,则不必指定连接。当然假设你正在做内部联接。假设你真的想加入PK和FK。