我有一個像下面MySQL的返回,如果沒有記錄返回
------------------------- | aid | tid | dft | ------------------------- | 1 | 1 | Y | ------------------------- | 1 | 2 | N | ------------------------- | 2 | 3 | Y | ------------------------- | 3 | 4 | Y | ------------------------- | 3 | 5 | N | -------------------------
表我想查詢表,以獲得TID了基於援助和TID但如果替代記錄TID不存在爲援助那麼它應該返回默認TID(由Y在DFT列標識)。
我已經試過這不會引發錯誤,但返回以下NULL
SELECT IF ( t1.tid IS NOT NULL, t1.tid, ( SELECT t2.tid FROM table t2 WHERE t2.aid = 1 AND t2.dft = 'Y' ) ) AS tid FROM table t1 WHERE t1.aid = 1 AND t1.tid = 3
作爲該代碼查找援助TID 1不存在,所以應該返回TID爲1,因爲這是在dft列中標記爲Y的值。
任何人都可以幫忙嗎?
謝謝。後者做到了這一點 - 真的很明顯,但是當你盯着太長的東西時,你知道它是什麼樣的!第二套眼睛總是很好。 – 2012-07-11 14:50:06