为两列选择一个引用



早上好,我的sqlite表中出现了一个意外情况。该表包含3列:id、code_a和code_b。

意外情况是:
id code_a code_b
n 10 4<--好
n 4 10<--不期望的值,因为10已经存在于第一行的code_a中
n 3 10<-不期望的值,因为10已经存在于第一行的code_a中
n 5 7<-好的

我需要一个查询(或重新创建表(,以避免所有列的code_b中的code_a的值重复

我想要的输出是
id code_a code_b
n 10 4
n 5 7

任何建议都将不胜感激。

谢谢

您可以使用NOT EXIST:

SELECT t1.*
FROM tablename t1
WHERE NOT EXISTS (
SELECT 1 FROM tablename t2 
WHERE t2.id < t1.id 
AND (t2.code_a IN (t1.code_a, t1.code_b) OR t2.code_b IN (t1.code_a, t1.code_b))
)

相关内容

最新更新