Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL列存在多次_Sql_Sql Server - Fatal编程技术网

SQL列存在多次

SQL列存在多次,sql,sql-server,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 oit

这很好用

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

我知道第二个示例毫无意义,但我需要另一个使用groupping的select,是否有方法修复coulm存在多次错误,而不必在select语句中指定列名

通过使用
*
,您将在输出中多次获得同一列。为了避免这种情况,请特别说明要返回的列


罪魁祸首可能是
orderid
catalogid
,它们都存在于多个表中,但也可能存在其他表。

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


罪魁祸首可能是
orderid
catalogid
,它们都存在于多个表中,但也可能存在其他表。

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


罪魁祸首可能是
orderid
catalogid
,它们都存在于多个表中,但也可能存在其他表。

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


罪魁祸首可能是
orderid
catalogid
,它们都存在于多个表中,但可能还有其他表。

您特别提到了列名。我可以看到您正在使用“*”。你必须使用像
选择i.columnName,o.columnName等你必须特别提到列名。我可以看到您正在使用“*”。你必须使用像
选择i.columnName,o.columnName等你必须特别提到列名。我可以看到您正在使用“*”。你必须使用像
选择i.columnName,o.columnName等你必须特别提到列名。我可以看到您正在使用“*”。您必须使用类似
select i.columnName,o.columnName

等,错误是关于主键列,但我想知道为什么第一个查询中没有重复的列有重复的列,例如,
catalogid
存在于两个表中,您要求两个列在输出中具有相同的名称,所以“列存在不止一次”。别名列的第二个实例,或者删除它,因为它是基于
连接的相同值。因此,最后写所有列名是唯一的解决方案?不是,但是最好和正确的解决方案。您几乎应该始终避免在生产代码中使用
*
。对于临时查询或特殊代码(例如ORM生成)来说,这是可以的,但如果有疑问,请不要使用它。对,错误是关于主键列,但我想知道为什么第一个查询中没有重复列。有重复列,例如,
catalogid
存在于两个表中,您要求两个列,它们在输出中具有相同的名称,因此“列存在多次”。别名列的第二个实例,或者删除它,因为它是基于
连接的相同值。因此,最后写所有列名是唯一的解决方案?不是,但是最好和正确的解决方案。您几乎应该始终避免在生产代码中使用
*
。对于临时查询或特殊代码(例如ORM生成)来说,这是可以的,但如果有疑问,请不要使用它。对,错误是关于主键列,但我想知道为什么第一个查询中没有重复列。有重复列,例如,
catalogid
存在于两个表中,您要求两个列,它们在输出中具有相同的名称,因此“列存在多次”。别名列的第二个实例,或者删除它,因为它是基于
连接的相同值。因此,最后写所有列名是唯一的解决方案?不是,但是最好和正确的解决方案。您几乎应该始终避免在生产代码中使用
*
。对于临时查询或特殊代码(例如ORM生成)来说,这是可以的,但如果有疑问,请不要使用它。对,错误是关于主键列,但我想知道为什么第一个查询中没有重复列。有重复列,例如,
catalogid
存在于两个表中,您要求两个列,它们在输出中具有相同的名称,因此“列存在多次”。别名列的第二个实例,或者删除它,因为它是基于
连接的相同值。因此,最后写所有列名是唯一的解决方案?不是,但是最好和正确的解决方案。您几乎应该始终避免在生产代码中使用
*
。对于特殊查询或特殊代码(例如ORM生成)来说,这是很好的,但是当有疑问时,不要使用它。。。。。