请问sql怎么关联取出两表的数据?

雨小睡 2019-03-07 01:33:24


其中,B表的id字段对应A表的cid字段,
即B表.id=A表.cid,请问怎么关联取出A、B表的数据?
如:1.张三.教师
...全文
316 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
二月十六 2019-03-07
  • 打赏
  • 举报
回复
引用 4 楼 chint7 的回复:
[quote=引用 2 楼 二月十六 的回复:] 只取一条的话,加一个where条件
Select #A.id,#A.name,#B.name from #A JOIN #B ON cid=#B.id WHERE #A.id=1
谢谢。A表取name字段是用$row['name'],那么如何取B表的name字段?因为两表的字段名name是一样的[/quote] 用别名
Select #A.id,#A.name,#B.name AS Bname from #A JOIN #B ON cid=#B.id WHERE #A.id=1
$row['Bname']
雨小睡 2019-03-07
  • 打赏
  • 举报
回复
引用 2 楼 二月十六 的回复:
只取一条的话,加一个where条件
Select #A.id,#A.name,#B.name from #A JOIN #B ON cid=#B.id WHERE #A.id=1


谢谢。A表取name字段是用$row['name'],那么如何取B表的name字段?因为两表的字段名name是一样的
xzxmustwin 2019-03-07
  • 打赏
  • 举报
回复

SELECT A.*,B.* FROM A
LEFT OUTER JOIN B on A.cid = B.id
二月十六 2019-03-07
  • 打赏
  • 举报
回复
只取一条的话,加一个where条件
Select #A.id,#A.name,#B.name from #A JOIN #B ON cid=#B.id WHERE #A.id=1
二月十六 2019-03-07
  • 打赏
  • 举报
回复
--测试数据
if not object_id(N'Tempdb..#A') is null
drop table #A
Go
Create table #A([id] int,[name] nvarchar(22),[cid] int)
Insert #A
select 1,N'张三',11 union all
select 2,N'李四',12
GO
if not object_id(N'Tempdb..#B') is null
drop table #B
Go
Create table #B([id] int,[name] nvarchar(22))
Insert #B
select 11,N'教师' union all
select 12,N'学生'
Go
--测试数据结束
Select #A.id,#A.name,#B.name from #A JOIN #B ON cid=#B.id


22,207

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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