我有此查询,我想选择此查询的反 (无关紧要。
SELECT*
FROM input1
LEFT OUTER JOIN (
SELECT MAX(Ref) AS Ref, Nomlatin, Lieudit, Commune
FROM input1
GROUP BY Nomlatin, Lieudit, Commune
) as t1
ON input1.Ref = t1.Ref
WHERE t1.Ref IS NULL
我已经搜索了该问题的答案,但没有成功使用NOT IN
。
如果有人可以帮助我,那就太好了。
谢谢
答案 0 :(得分:0)
好吧,您最后有WHERE
子句,该子句过滤了IS NULL
的最终结果集中的所有内容。
如果将IS NULL
替换为IS NOT NULL
,则将返回其相反或相反的结果。
SELECT*
FROM input1
LEFT OUTER JOIN (
SELECT MAX(Ref) AS Ref, Nomlatin, Lieudit, Commune
FROM input1
GROUP BY Nomlatin, Lieudit, Commune
) as t1
ON input1.Ref = t1.Ref
WHERE t1.Ref IS NOT NULL -- minor change here
答案 1 :(得分:0)
我会使用 correlated subquery
来做到这一点:
SELECT i.*
FROM input1 i
WHERE Ref = (SELECT MAX(i1.Ref)
FROM input1 i1
WHERE i1.Nomlatin = i.Nomlatin AND i1.Lieudit = i.Lieudit, i1.Commune = i.Commune
);