Check this fiddle for DB and tables左连接三个表与子查询
SELECT p.*
FROM Products p
LEFT JOIN offertran ot
ON p.prod_id = ot.prod_id
LEFT JOIN Offers o
ON ot.offer_id = (SELECT id FROM Offers
Where dF<=3 AND dt>=3)
ORDER BY o.id DESC,
p.prod_id ASC
LIMIT 20
输出为:
| PROD_ID | CATEGORY_ID | PROD_NAME | BRAND | PRICE | STATUS |
---------------------------------------------------------------
| p3 | c1 | prod3 | brand3 | 3000 | active |
| p3 | c1 | prod3 | brand3 | 3000 | active |
| p1 | c1 | prod1 | brand1 | 1000 | active |
| p2 | c2 | prod2 | brand2 | 2000 | active |
| p4 | c2 | prod4 | brand1 | 4000 | active |
| p5 | c1 | prod5 | brand2 | 5000 | active |
| p6 | c2 | prod6 | brand3 | 6000 | active |
但是,在这里你可以看到p3
显示两次。我不知道为什么.. 我曾尝试所有可能的方式,但我不能找到任何补救.. :(
我有P3亚当只有一个记录。感谢您的回复 – Anusha