1

我正在尝试运行如下所示的代码。这里的子查询从与主查询相同的表中提取 - 唯一的约束是 column3 is/is not NULL。有什么办法可以简化吗?

SELECT a.column1, a.column2, b.column1, b.column2
FROM table1 a
INNER JOIN 
  (SELECT column1, column2
  FROM table1
  WHERE column3 IS NULL) b
ON a.column4 = b.column4
WHERE a.column3 IS NOT NULL
GROUP BY a.column1, a.column2, b.column1, b.column2
4

1 回答 1

2

编辑后:(在您的查询 b 表中没有 column4)

尝试这个:

SELECT a.column1, a.column2, b.column1, b.column2
FROM table1 a
INNER JOIN table1 b
ON a.column4 = b.column4
WHERE a.column3 IS NULL
AND b.column3 IS NOT NULL

如果您认为您在四列中有重复,您可以在字段列表中使用 GROUP BY 或 DISTINCT 命令。

于 2013-10-04T00:02:16.000 回答