[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