我有一个像下面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