我在调试此查询时遇到问题,这给我带来了错误的结果... 2条记录而不是一条记录。

这是查询:

SELECT DISTINCT t1.*, t2.filterid as filterid2
FROM ( SELECT DISTINCT a.*, f.`filterid`
FROM adds a
JOIN adds_filters f
ON a.`addid` = f.`addid`
WHERE a.`catid` = 1
AND f.`filterid` = 67 ) t1

JOIN ( SELECT DISTINCT a.`addid`,f.`filterid`
FROM adds a
JOIN adds_filters f
ON a.`addid` = f.`addid`
WHERE a.`catid` = 1
AND f.`filterid` = 68 ) t2

JOIN ( SELECT DISTINCT a.`addid`,f.`filterid`
FROM adds a
JOIN adds_filters f
ON a.`addid` = f.`addid`
WHERE a.`catid` = 1
AND f.`filterid` = 158 ) t3
ON t1.addid = t2.addid


由于表相当长,因此这是fiddle

任何帮助将不胜感激

问候,约翰

最佳答案

我想这就是你最后一行想要的

    ON t1.addid = t2.addid and t2.addid =t3.addid;

10-08 09:10