0

给定 3 个表 a :{id, name_eng}, b: {id, name_spa} and c: {id, name_ita} 这是给定表的等效“产品笛卡尔查询”:

select
    a.name_eng
    b.name_spa
    c.name_ita
from
    a inner join b on a.id = b.id
    left outer join c on a.id = c.id
4

1 回答 1

1

我不知道你想要什么,笛卡尔积是这样的:

SELECT  a.name_eng
        b.name_spa
        c.name_ita
FROM a
CROSS JOIN b
CROSS JOIN c

或隐式方式:

SELECT  a.name_eng
        b.name_spa
        c.name_ita
FROM a,b,c

如果您希望使用笛卡尔积编写之前的查询(为什么??),那么应该这样做(在 SQL Server 2000 上):

SELECT  a.name_eng
        b.name_spa
        c.name_ita
FROM a,b,c
WHERE a.id = b.id 
AND a.id *= c.id

如果我对“为什么??”不够清楚,您不应该使用隐式连接,因为它们已被弃用,您应该始终使用正确的显式连接。

于 2013-04-10T17:41:04.140 回答