SQL Cross Join Query不使用变量

时间:2013-11-06 03:08:30

标签: sql sql-server variables cross-join

此交叉连接正常:

select * from x, y

我正在尝试运行此查询:

select abc.col1 from abc
(select * from x, y) abc

但我收到此错误消息:

Msg 8156, Level 16, State 1, Line 2
The column 'col1' was specified multiple times for 'abc'.

表x和y都具有相同的列和列定义。

有任何想法/建议吗?

3 个答案:

答案 0 :(得分:2)

select abc.col1 from abc
(select * from x, y) abc

您正在使用相同名称对两个表进行别名。尝试:

select abc.col1 from abc,
(select x.* from x, y) abc2

答案 1 :(得分:1)

您必须在内部查询部分指定列名称。 像这样的东西:

select abc.col1 from abc
(select x.col1,y.col1 from x, y) abc 

答案 2 :(得分:0)

除了Lock的回答,你还忘记了逗号:

select 
    abc.col1 
from abc, (select * from x, y) abc2

更好的是,使用ansi 1992表示法:

select 
    abc.col1 
from abc CROSS JOIN (select * from x, y) abc2