mysql多表聯結

SELECT  row_number() OVER ( ORDER BY b.applicationmainCode DESC ) AS rowid ,
        a.applicationdetailid ,
        a.ApplicationMainCode ,
        a.price ,
        a.goodsnum ,
        a.reciveNum ,
        a.sendNum ,
        a.PublicNum ,
        a.Currency ,
        a.equipment ,
        a.equipmentnum ,
        a.requiredate ,
        a.des ,
        c.suppliername ,
        d.goodsname ,
        d.standard ,
        d.unit ,
        d.productid ,
        d.productArea ,
        d.buyarea ,
        e.paymenter ,
        f.workunit ,
        g.classname ,
        b.Ausername ,
        b.AworkUnit ,
        b.applicationMaindate ,
        b.buycode ,
        UseProuduct ,
        ProductCode ,
        TSort ,
        TsortChild ,
        TSortNum ,
        CASE WHEN tnewflag = 1 THEN '新'
             ELSE '舊'
        END AS tnewStatus ,
        Tcontent ,
        Tdes ,
        d.price AS GPrice ,
        CASE WHEN b.comfigflag = 0 THEN '是'
             ELSE '否'
        END AS comfigstatus ,
        ( SELECT TOP 1
                    getgoodsdate
          FROM      instock
          WHERE     applicationdetailid = a.applicationdetailid
          ORDER BY  getgoodsdate
        ) AS getgoodsdate
FROM    Gr_dt_applicationDetail a
        LEFT JOIN Gr_db_supplier c ON a.supplierid = c.supplierid
        LEFT JOIN applicationMain b ON a.applicationmainCode = b.ApplicationMaincode
        LEFT JOIN goods d ON a.goodsid = d.goodsid --#
        LEFT JOIN Payment e ON b.paymentid = e.paymentid
        LEFT JOIN workunit f ON b.UworkUnitId = f.workUnit_Id
        LEFT JOIN goodstreeclass g ON b.classid = g.classid
WHERE   a.applicationmainCode = b.ApplicationMaincode
        AND a.goodsid = d.goodsid    --這個地方跟#處有點兒重複了,#處改爲 inner join
        AND 1 = 1
        AND b.passflag >= 1
ORDER BY b.applicationmainCode DESC

多表聯結 sql

SELECT ...  FROM 
a  JOIN  b  ON  (a.id   =  b.aid )
   JOIN   c  ON  (a.id   =  c.aid )
   JOIN   d  ON  (c.id   =  d.cid )

這樣的語句,在數據量大,索引沒維護好,想不慢都難呀。 app


經過執行計劃檢查性能低的位置,再考慮建索引,關聯表太多考慮使用臨時表。
相關文章
相關標籤/搜索