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
は2回表示されています。理由はわかりません..可能な限りの方法を試しましたが、解決策が見つかりません.. :(