我尝试使用公共ID连接自己的表来查找某个列不相等的实例。我的问题是我的脚本返回几乎重复的行,但返回列中的值是交换的(因此不同的行将无效)。
一个例子是:
Select distinct t1.ID, t1.Value V1, t2.Value V2
from t1, t2
where t1.ID = t2.ID
and t1.Value <> t2.Value
返回:
ID V1 V2
1 A B
2 B A
当我想要它返回单行时:
ID V1 V2
1 A B
答案 0 :(得分:2)
我可以建议吗?
Select t1.ID, t1.Value as V1, t2.Value as V2
from t1 join
t2
on t1.ID = t2.ID and
t1.Value < t2.Value;
请注意,更改为<
而非<>
。
答案 1 :(得分:0)
您可以使用LEAST/GREATEST
个功能:
SELECT DISTINCT t1.ID,
LEAST(t1.Value , t2.Value) AS V1,
GREATEST(t1.Value, t2.Value) AS V2
FROM t1
JOIN t2
ON t1.ID = t2.ID
WHERE t1.Value <> t2.Value;
<强> DBFiddle Demo 强>