数据库
首页 > 数据库> > mysql – 左连接带有子查询的三个表

mysql – 左连接带有子查询的三个表

作者:互联网

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显示两次.我不知道为什么..
我曾尝试过所有可能的方法,但我找不到任何补救措施..

标签:multiple-tables,mysql,subquery,left-join
来源: https://codeday.me/bug/20190826/1726375.html