麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 數據庫 > MySQL > 正文

mysql多個left join連接查詢用法分析

2024-07-25 19:08:40
字體:
來源:轉載
供稿:網友

本文實例講述了mysql多個left join連接查詢用法。分享給大家供大家參考,具體如下:

mysql查詢時需要連接多個表時,比如查詢訂單的商品表,需要查詢商品的其他信息,其他信息不在訂單的商品表,需要連接其他庫的表,但是連接的條件基本都是商品ID就可以了,先給一個錯誤語句(查詢之間的嵌套,效率很低):

SELECT  A.order_id,  A.wid,  A.work_name,  A.supply_price,  A.sell_price,  A.total_num,  A.sell_profit,  A.sell_percent,  A.goods_id,  A.goods_name,  A.classify,  B.gb_nameFROM  (    SELECT      A.sub_order_id AS order_id,      A.photo_id AS wid,      A.photo_name AS work_name,      A.supply_price,      A.sell_price,      sum(A.num) AS total_num,      (        A.sell_price - A.supply_price      ) AS sell_profit,      (        A.sell_price - A.supply_price      ) / A.sell_price AS sell_percent,      A.goods_id,      A.goods_name,      B.goods_name AS classify    FROM      order_goods AS A    LEFT JOIN (      SELECT        A.goods_id,        A.parentid,        B.goods_name      FROM        test_qyg_goods.goods AS A      LEFT JOIN test_qyg_goods.goods AS B ON A.parentid = B.goods_id    ) AS B ON A.goods_id = B.goods_id    WHERE      A.createtime >= '2016-09-09 00:00:00'    AND A.createtime <= '2016-10-16 23:59:59'    AND FROM_UNIXTIME(      UNIX_TIMESTAMP(A.createtime),      '%Y-%m-%d'    ) != '2016-09-28'    AND FROM_UNIXTIME(      UNIX_TIMESTAMP(A.createtime),      '%Y-%m-%d'    ) != '2016-10-07'    GROUP BY      A.photo_id    ORDER BY      A.goods_id ASC  ) AS ALEFT JOIN (  SELECT    A.wid,    A.brand_id,    B.gb_name  FROM    test_qyg_user.buser_goods_list AS A  LEFT JOIN test_qyg_supplier.brands AS B ON A.brand_id = B.gbid) AS B ON A.wid = B.wid

查詢結果耗時4秒多,explain分析,發現其中2個子查詢是全部掃描,可以使用mysql的多個left join優化

SELECT  A.sub_order_id,  A.photo_id AS wid,  A.photo_name AS work_name,  A.supply_price,  A.sell_price,  sum(A.num) AS total_num,  (    A.sell_price - A.supply_price  ) AS sell_profit,  (    A.sell_price - A.supply_price  ) / A.sell_price AS sell_percent,  A.goods_id,  A.goods_name,  B.parentid,  C.goods_name AS classify,  D.brand_id,  E.gb_name,  sum(    CASE    WHEN F.buy_type = 'yes' THEN      A.num    ELSE      0    END  ) AS total_buy_num,  sum(    CASE    WHEN F.buy_type = 'yes' THEN      A.num    ELSE      0    END * A.sell_price  ) AS total_buy_money,  sum(    CASE    WHEN F.buy_type = 'no' THEN      A.num    ELSE      0    END  ) AS total_give_num,  sum(    CASE    WHEN F.buy_type = 'no' THEN      A.num    ELSE      0    END * A.sell_price  ) AS total_give_moneyFROM  order_goods AS ALEFT JOIN test_qyg_goods.goods AS B ON A.goods_id = B.goods_idLEFT JOIN test_qyg_goods.goods AS C ON B.parentid = C.goods_idLEFT JOIN test_qyg_user.buser_goods_list AS D ON A.photo_id = D.widLEFT JOIN test_qyg_supplier.brands AS E ON D.brand_id = E.gbidLEFT JOIN order_info_sub AS F ON A.sub_order_id = F.order_idWHERE  A.createtime >= '2016-09-09 00:00:00'AND A.createtime <= '2016-10-16 23:59:59'AND FROM_UNIXTIME(  UNIX_TIMESTAMP(A.createtime),  '%Y-%m-%d') != '2016-09-28'AND FROM_UNIXTIME(  UNIX_TIMESTAMP(A.createtime),  '%Y-%m-%d') != '2016-10-07'GROUP BY  A.photo_idORDER BY  A.goods_id ASC

查詢結果耗時0.04秒

希望本文所述對大家MySQL數據庫計有所幫助。


注:相關教程知識閱讀請移步到MYSQL教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 久久毛片免费观看 | h久久| 免费国产自久久久久三四区久久 | 欧美一区二区三区免费不卡 | 日本黄色一级视频 | 一级黄色性感片 | 99影视电影电视剧在线播放 | 成人福利在线播放 | 国产资源在线免费观看 | 色阁五月 | 亚洲aⅴ免费在线观看 | 羞羞网站在线看 | 欧日韩| 欧美国产精品久久 | 国产在线精品区 | 欧美一级片一区 | 国产 视频 一区二区 | 99r国产精品| 久草干| 国产一区二区三区黄 | 国产乱淫av片免费观看 | 香蕉视频99 | 亚洲成人综合网站 | 国产午夜探花 | 91不雅视频| 日韩视频一区二区三区四区 | 在线成人一区二区 | 国产91一区二区三区 | 一区国产精品 | av中文一区 | 久草在线资源福利站 | 黄色a级片视频 | 免费国产自久久久久三四区久久 | 国产精品成人一区二区三区吃奶 | 一区二区三区黄色 | 欧美亚洲黄色 | 成人免费看片a | 色中色综合 | 成年免费大片黄在线观看岛国 | 国产一级淫片在线观看 | 91麻豆精品国产91久久久更新资源速度超快 |