-3

我想知道为什么需要将 (primary key = foreign key) 放在 where 语句中。表格通过这些标准相互关联。那么,为什么每个人都在where子句或 *join*s 中使用它?

我的意思是,而不是

select a.name, b.name from a,b where (a.fk = b.pk) AND (something = "something")

如果有人说

... 选择 a.name, b.name from a,b where (something = "something")

够了吗?

4

1 回答 1

2

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

SQL ANSI 委员会的成员非常聪明。我敢肯定,他们已经彻底考虑了这一点,并认为当前的标准是最安全、最可靠的。

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

于 2012-11-01T11:52:40.073 回答