求个2表关联的SQL语句

dota2perfectword 2015-04-27 04:31:44
表A有一列c,表B有一列c,查询A表所有数据,如果c的值在表B里存在,标记为已匹配,不存在标记为未匹配,求大神指导一下。
...全文
163 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaoxiangqing 2015-04-29
  • 打赏
  • 举报
回复
最简单的是下面这样: SELECT T1.c ,ISNULL((select top 1 '已匹配' from B where T1.c=c),'未匹配') FROM A T1 或者 SELECT T1.c ,CASE WHEN EXISTS(select 1 from B where T1.c=c) THEN '已匹配' ELSE '未匹配' end FROM A T1
还在加载中灬 2015-04-29
  • 打赏
  • 举报
回复
--之前没注意是查询,而不是更新
--如果A的C和B的C都是一对一,直接这样即可
SELECT T1.c
	,(CASE WHEN T2.c IS NOT NULL THEN '已匹配'ELSE'未匹配'END)
FROM A T1
	LEFT JOIN B T2 ON T1.c=T2.c
--如果A的C在B中存在多个C与之对应,则可以这样
SELECT T1.c
	,(CASE WHEN T2.c IS NOT NULL THEN '已匹配'ELSE'未匹配'END)
FROM A T1
	LEFT JOIN(SELECT c FROM B GROUP BY c)T2 ON T1.c=T2.c
chu_hanqinghuai 2015-04-29
  • 打赏
  • 举报
回复
用FROM子句进行多表查询 private DataTable GetCount(string Age) { string P_Str_ConnectionStr = string.Format(//创建数据库连接字符串 @"server=WIN-GI7E47AND9R\LS;database=db_TomeTwo;uid=sa;pwd="); string P_Str_SqlStr = string.Format(//创建SQL查询字符串 "SELECT COUNT(*) AS 学生数量 FROM tb_Student WHERE 年龄={0}", Age);//codego.net/ SqlDataAdapter P_SqlDataAdapter = new SqlDataAdapter(//创建数据适配器 P_Str_SqlStr, P_Str_ConnectionStr); DataTable P_dt = new DataTable();//创建数据表 P_SqlDataAdapter.Fill(P_dt);//填充数据表 return P_dt;//返回数据表 }
chen357313771 2015-04-27
  • 打赏
  • 举报
回复
WITH a(c) AS ( SELECT 1 UNION SELECT 2 UNION SELECT 3 ) ,b(c)AS (SELECT 2 UNION SELECT 3) SELECT a.c,CASE WHEN b.c IS NULL THEN '未匹配' ELSE '已匹配' END FROM a LEFT JOIN b ON a.c=b.c
Tiger_Zhao 2015-04-27
  • 打赏
  • 举报
回复
    SELECT a.*,
CASE WHEN b.c IS NULL
THEN '未匹配'
ELSE '已匹配'
END 标记
FROM a
LEFT JOIN b
ON a.c = b.c
还在加载中灬 2015-04-27
  • 打赏
  • 举报
回复
UPDATE T1
SET [status]=(CASE WHEN T2.c IS NOT NULL THEN '已匹配'ELSE'未匹配'END)
FROM A T1
	LEFT JOIN B T2 ON T1.c=T2.c

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧