看板 Database 關於我們 聯絡資訊
欸 我有點不知道怎麼用一句話描述 所以標題打成這樣大概會看不懂 我直接用SQL來舉例好了 我的TABLE TA 中以CX這個欄位當條件 要找出CA=XX的和CA=YY的 CA=YY若有就填入NEWY、NEWX這兩個欄位中 我的問題是,其實這個TA是簡化過的 我單獨SELECT一次SELECT * FROM TA WHERE CX='XX' 這個動作就要幾分鐘 再加上JOIN下面再SELECT一次就需要更久的時間了 想請問有沒有可以簡化這段SQL的方法? 謝謝! SELECT X.* ,Y.CX AS NEWX ,Y.CY AS NEWY FROM ( SELECT * FROM TA WHERE TA.CX = 'XX' ) X LEFT JOIN ( SELECT * FROM TA WHERE TA.CX = 'YY' ) Y ON X.PK = Y.PK; -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.230.215.236 ※ 文章網址: https://www.ptt.cc/bbs/Database/M.1454401682.A.01C.html
moyasi: 你光where單一條件就慢了 根本就沒index吧? 02/02 17:12
moyasi: 而且我看不懂為何要下join 02/02 17:22
moyasi: CX='XX' CX='YY' 用PK當條件做join 還會一樣????? 02/02 17:25
walilaV: TA是我簡化過的 本來是幾個TABLE、VIEW JOIN在一起的 02/05 13:46
walilaV: 資料量很大 INDEX也加了還是慢 02/05 13:46