日期:2014-05-18  浏览次数:20559 次

请求sql数据库中两个不同的表中有字段的内容相同则显示一个表中的内容解决方法
表1字段

ID CID NAME Title BBB CCC

表2字段

ID MID CCDATA CCTIME


表1中的“ID”内容有部分与表2中的“MID”相同。

我的要求是:我要显示表1中的“Title”内容,但若表1的“ID”里面的内容在表2的“MID”中查找不到的话,就在其“Title”后显示文本“NO”,若表1的“ID”里面的内容在表2的“MID”中有相同的,就在其“Title”后显示文本“YES”;请高手帮忙。谢谢。


------解决方案--------------------
如果T2中可能有多条MID与T1的ID匹配,有两种写法,第一种适合大批量输出,第二种适合小批量输出。
SQL code
SELECT T1.TITLE+'['+CASE WHEN T2.ID IS NOT NULL THEN 'YES' ELSE 'NO' END)+']'
FROM [表1] T1
LEFT JOIN ( SELECT MID,MAX(ID) AS ID
FROM [表2]
GROUP BY MID
) T2 ON T1.ID=T2.MID

------解决方案--------------------
SQL code
select
  a.title + case when b.id is not null then 'yes' else 'no' end
from
   表1 a left join 表2 b
on
   a.id=b.mid

------解决方案--------------------
SQL code
select title+(case when exists(select 1 from 表2 where mid=a.id) then 'yes' else 'no' end)
from 表1 a