SQL列不止一次存在

时间:2013-11-27 17:47:27

标签: sql sql-server

这很好用

SELECT i.*,o.*,p.*
FROM orders o 
INNER JOIN oitems i 
ON i.orderid = o.orderid 
LEFT OUTER JOIN products p 
ON i.catalogid = p.catalogid 

然而我想执行一个嵌套选择作为一个例子,这是给予coulmn x不止一次存在

SELECT AA.*, 
FROM (
SELECT i.*,o.*,p.*
FROM orders o 
INNER JOIN oitems i 
ON i.orderid = o.orderid 
LEFT OUTER JOIN products p 
ON i.catalogid = p.catalogid ) AA

我知道第二个例子没有意义,但我需要另一个选择与灌浆,有没有办法修复coulm不止一次出现错误而不必在select语句中指定列名?

2 个答案:

答案 0 :(得分:3)

使用*,您在输出中多次获得相同的列。为避免这种情况,请特别声明要返回的列。

罪犯很可能orderidcatalogid都存在于多个表中,但可能还有其他人。

答案 1 :(得分:0)

您具体提到了列名。我可以看到你正在使用“*”。你必须使用像select i.columnName,o.columnName