0

我必须编写一个自定义解释器来模拟select具有三个表的数据库上的 SQL 查询:ABC. 我的问题如下:以下查询是否返回相同的结果?

select A1
from A
where A1 = 1;

select A1
from A, C
where A1 = 1;

正如我所写的,这两个提供了不同的结果,因为在from子句中添加了表。但我不确定这是否正确;结果应该取决于子句中的表还是from子句中的连接(或缺少连接)where

4

1 回答 1

2

第二个将返回与 de A where 子句匹配的所有行以及 C 表中的所有行。由于这些表之间没有定义关系。它通常被称为笛卡尔积。

如果您想要 A 和 C 之间的关系,则需要它们之间的连接,例如 A.C_ID = C.ID 用于匹配模式,或 LEFT | 右连接取决于您想要的结果集。

于 2013-04-29T14:59:24.690 回答