0

这个交叉连接工作​​正常:

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 具有相同的列和列定义。

有什么想法/建议吗?

4

3 回答 3

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

您正在为两个具有相同名称的表起别名。尝试:

select abc.col1 from abc,
(select x.* from x, y) abc2
于 2013-11-06T03:10:25.670 回答
1

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

select abc.col1 from abc
(select x.col1,y.col1 from x, y) abc 
于 2013-11-06T05:52:30.273 回答
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
于 2013-11-06T03:12:17.733 回答