Table A Table B
ID Name ID Name Last_Name
1 John 1 John Depp
2 Henry 2 David Henry
3 Ken
我尝试在这些条件语句来选择名称:与内Select语句加入
- 如果
NAME
在TableA
能够与TableB
的NAME
地图,然后选择Last_Name
- 如果
NAME
是TableA
等于LAST_NAME
在TableB
中,则从TableA
中选择NAME
- 如果
NAME
在TableA
不能与TableB
的NAME
或LAST_NAME
地图,然后从TableA
选择NAME
。
方法我用:
SELECT * FROM
(SELECT A.ID NO, LAST_NAME REALNAME
FROM TABLEA A
INNER JOIN TABLEB B
ON A.NAME = B.NAME
UNION ALL
SELECT A.ID NO, A.NAME REALNAME
FROM TABLEA A
WHERE EXISTS (SELECT 1 FROM TABLEB B WHERE A.NAME = B.LAST_NAME)
UNION ALL
SELECT A.ID NO, A.NAME REALNAME
FROM TABLEA A
WHERE NOT EXISTS (SELECT 1 FROM TABLEB B WHERE A.NAME = B.NAME OR A.NAME = B.LAST_NAME)
)AS T
问题:是,任何更简化查询我可以用它来实现的条件是什么?
两者之间的ID是否可靠相关? – 2014-09-25 02:21:41