【发布时间】:2014-11-20 10:35:20
【问题描述】:
我遇到了以下问题。让我们假设这张表:
数据库为HSQLDB
TABLE1
A B
1 10
2 11
1 10
1 12 <---- not matching previous rows (B=10 is expected for A=1)
3 9
2 11
我想确保过滤所有具有“乱序”A、B 对的行。所以在这种情况下,结果将是:
1 10
1 10
1 12
我想出了以下方法:
SELECT * FROM
(SELECT * FROM TABLE1) INNER JOIN
(SELECT A as A2, B as B2 FROM TABLE1) ON A=A2
WHERE B!=B2
但这有点难看,因为如果表中有很多与 A 列匹配的条目,则会进行很多连接。您将如何解决这个问题?
【问题讨论】: