给出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
答案 0 :(得分: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
如果我对“why ??”不够清楚,你不应该使用隐式连接,因为不推荐使用它们,你应该总是使用正确的显式连接。