Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我必须编写一个自定义解释器来模拟select具有三个表的数据库上的 SQL 查询:A、B和C. 我的问题如下:以下查询是否返回相同的结果?
select
A
B
C
select A1 from A where A1 = 1; select A1 from A, C where A1 = 1;
正如我所写的,这两个提供了不同的结果,因为在from子句中添加了表。但我不确定这是否正确;结果应该取决于子句中的表还是from子句中的连接(或缺少连接)where?
from
where
第二个将返回与 de A where 子句匹配的所有行以及 C 表中的所有行。由于这些表之间没有定义关系。它通常被称为笛卡尔积。
如果您想要 A 和 C 之间的关系,则需要它们之间的连接,例如 A.C_ID = C.ID 用于匹配模式,或 LEFT | 右连接取决于您想要的结果集。