我有一个像这样的SQL查询:
SELECT com.*
from VE_COMMAND_SITE_BIND bnd INNER JOIN [dbo].[VE_COMMAND] com ON bnd.COMMAND_ID = com.ID
两个表中都有一个名为“ON”的字段。我想从第一个表com中选择所有字段,就像我使用com。一样。
但是从第二张桌子开始'ON'字段。我也不喜欢t want to mention all the com
字段 - 我喜欢com。!
MSSQL中有没有正确的方法来做这些事情?
答案 0 :(得分:1)
如果您的问题是“我可以选择除表格中的一个字段以外的所有字段,然后从表格中选择一个字段吗?”然后答案是“不。你必须单独定义结果字段”
你可以做
select com.*, bnd.[on] as bndon
或
select com.field1, com.field2,...
另外,您应该尽量避免将字段称为“on”,因为on
是保留字。
出于可保性和潜在性能原因,最好从select
语句中单独指定要返回的字段。
答案 1 :(得分:0)
您可以对您的VE_Command(com)表使用通配符*运算符,只需从VE_COMMAND_SITE_BIND(bnd)中选择您想要的字段。
要注意的一件事是命名冲突。你说在两个表中,该字段被称为ON。这可能会导致尝试按名称访问字段的任何客户端应用程序出现问题。 (哪一个选择,等等?)
由于你的要求不想列出com的所有字段,可能更容易重命名你带来的那个字段
SELECT
com.*,
bnd.ON AS BindOn
FROM
...