[SQL ] 同TABLE中以欄位當條件 JOIN出新欄位

作者: walilaV (哇哩勒)   2016-02-02 16:27:59
欸 我有點不知道怎麼用一句話描述
所以標題打成這樣大概會看不懂
我直接用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;
作者: moyasi (Simple Life)   2016-02-02 17:12:00
你光where單一條件就慢了 根本就沒index吧?而且我看不懂為何要下joinCX='XX' CX='YY' 用PK當條件做join 還會一樣?????
作者: walilaV (哇哩勒)   2016-02-05 13:46:00
TA是我簡化過的 本來是幾個TABLE、VIEW JOIN在一起的資料量很大 INDEX也加了還是慢

Links booklink

Contact Us: admin [ a t ] ucptt.com