SQL Server:内部自连接返回太多值

时间:2018-07-11 21:32:18

标签: sql sql-server

我有一个查询表(A),其中包括列问题(字符串)和引擎(字符串)。一些查询是相同的,但是引擎是不同的。我正在尝试进行内部联接,以便获得包含标准化查询和同一行中两个引擎的表。因此,我想避免两次出现具有查询和相同引擎的行。

当我运行下面的语句时,它会执行,但它包含的查询仅列出了其中一个引擎,而不是两个。我的逻辑错了吗?

SELECT DISTINCT 
    X.Engine AS XEnging, Y.Engine AS YEngine, 
    X.Question AS Question 
FROM 
    A X
INNER JOIN 
    A Y ON X.Question = Y.Question AND X <> Y

我正在使用SQL Server并在Visual Studio 2017中运行脚本。

1 个答案:

答案 0 :(得分:0)

我想你只是想得到一个不平等:

SELECT DISTINCT X.Engine AS XEnging, Y.Engine AS YEngine, X.Question as Question
FROM A X INNER JOIN
     A Y
     ON X.Question = Y.Question AND X.Engine < Y.Engine;

我无法从您的问题中判断出SELECT DISTINCT是否必要。如果不是,则应将其删除,因为它只会影响性能。