在SQL Server中选择唯一列

在SQL Server中选择唯一列,sql,sql-server,Sql,Sql Server,(我希望获得与SQL Server兼容的解决方案) 假设我有一个包含列{a,B,C,D,E}的表'x',另一个包含列{a,B,C,F,G}的表'y' 我现在执行以下查询: SELECT * FROM( (SELECT * FROM x) AS M LEFT JOIN (SELECT * FROM y) AS N ON M.A=N.A AND M.B=N.B AND M.C=N.C) AS K 输出表包含列{A,B,C,D,E,A,B,C,F,G},而我实际上希望选择一个包含列{A,B,C,D,

(我希望获得与SQL Server兼容的解决方案)

假设我有一个包含列{a,B,C,D,E}的表'x',另一个包含列{a,B,C,F,G}的表'y'

我现在执行以下查询:

SELECT * FROM(
(SELECT * FROM x) AS M
LEFT JOIN
(SELECT * FROM y) AS N
ON M.A=N.A AND M.B=N.B AND M.C=N.C) AS K
输出表包含列{A,B,C,D,E,A,B,C,F,G},而我实际上希望选择一个包含列{A,B,C,D,E,F,G}的表


有什么办法解决这个问题吗?

您可以使用更简单的左连接,并指定要选择的列:

SELECT
    m.A,
    m.B,
    m.C,
    m.D,
    m.E,
    n.F,
    n.G
FROM x AS m
LEFT JOIN y AS n
    ON m.A = n.A AND m.B = n.B AND m.C = n.C;

据我所知,这里并不需要所有的子查询。另外,一般来说,执行
SELECT*
不是一件好事,您应该始终明确列出您希望选择的列。

不要使用
*
。。。如果要返回特定列,请指定列。便于帮助: