Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.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 server 2008_Sql_Sql Server_Tsql - Fatal编程技术网

连接两个表,但需要一个匹配的列,而不是单独显示sql server 2008

连接两个表,但需要一个匹配的列,而不是单独显示sql server 2008,sql,sql-server,tsql,Sql,Sql Server,Tsql,嗨,我想显示两个表的联接结果,但不想单独显示匹配的列。我想要一个而不是两个。所以,请告诉我我应该使用什么查询。我使用的是SQL Server 2008,我的查询如下: select * from Customer_Order, optRelation where Customer_Order.orderNumber = optRelation.orderNumber AND optRelation.orderNumber = 21 切勿在生产代码中使用SELECT*。

嗨,我想显示两个表的联接结果,但不想单独显示匹配的列。我想要一个而不是两个。所以,请告诉我我应该使用什么查询。我使用的是SQL Server 2008,我的查询如下:

select * 
from   Customer_Order, optRelation 
where  Customer_Order.orderNumber = optRelation.orderNumber AND 
       optRelation.orderNumber = 21

切勿在生产代码中使用
SELECT*
。指定所需的列。

您只需指定所需的字段,而无需使用
选择*
。事实上,由于各种原因,使用
SELECT*
被认为是不好的做法:

SELECT customer_Order.OrderNumber, 
       customer_Order.SomeFieldA,
       customer_Order.SomeFieldB,
       customer_Order.SomeFieldB,
       optRelation.SomeOtherField1,
       optRelation.SomeOtherField2,
       optRelation.SomeOtherField3
FROM   customer_Order, optRelation 
WHERE  customer_Order.OrderNumber = optRelation.OrderNumber AND 
       optRelation.OrderNumber = 21
您也可以(但通常也不应该)选择一个表的所有字段,然后显式选择第二个表的字段:

SELECT customer_Order.*,
       optRelation.SomeOtherField1,
       optRelation.SomeOtherField2,
       optRelation.SomeOtherField3
FROM   customer_Order, optRelation 
WHERE  customer_Order.OrderNumber = optRelation.OrderNumber AND 
       optRelation.OrderNumber = 21

这不应该是来自customer\u Order.OrderNumber=optRelation.OrderNumber上的customer\u Order内部连接optRelation吗?@JBrooks:SQL Server也会将上述内容视为内部连接。