我在调试此查询时遇到问题,这给我带来了错误的结果... 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;