0

我有一个这样的sql查询:

    SELECT com.*
from VE_COMMAND_SITE_BIND bnd INNER JOIN [dbo].[VE_COMMAND] com ON bnd.COMMAND_ID = com.ID

两个表中都有一个名为“ON”的字段。我想像处理 com 一样从第一个表 com 中选择所有字段。,但来自第二个表 bnd 的字段“ON”。我也t want to mention all the com没有字段 - 我喜欢 com。

MSSQL 中有什么合适的方法来做这些事情吗?

4

2 回答 2

1

如果您的问题是“我可以从表 com 中选择除一个字段之外的所有内容,然后从表 bnd 中选择一个字段吗?” 那么答案是“不。您必须单独定义结果字段”

你可以做

 select com.*, bnd.[on] as bndon

或者

 select com.field1, com.field2,...

此外,您应该尽量避免将您的字段称为“on”作为on保留字。

出于可维护性和潜在性能原因,最好单独指定要从select语句返回的字段。

于 2012-10-26T08:09:57.260 回答
0

您可以对 VE_Command ( com ) 表使用通配符 * 运算符,然后从 VE_COMMAND_SITE_BIND ( bnd ) 中选择您想要的字段。

要注意的一件事是命名冲突。您说在两个表中,该字段都称为 ON。这可能会导致尝试按名称访问字段的任何客户端应用程序出现问题。(它会选择哪一个,等等?)

由于您不想列出 com 的所有字段,因此重命名您从 bnd 中取出的字段可能更容易

SELECT 
   com.*,
   bnd.ON AS BindOn
FROM
   ...
于 2012-10-26T08:15:54.943 回答