关于两个表的联合查询问题

aierda 2010-08-24 06:05:46
Brand表 BrandOfCategory表
ID Name ID BrandID CategoryID
1 品牌1 1 1 1
2 品牌2 2 1 2
3 品牌3 3 1 3


小弟想联合上面两个表,查询出如下所示的结果,Brand表中的ID和BrandOfCategory表的BrandID
相关联,表示一个品牌从属于多个品牌类别,请教大家这个查询语句要怎么写,小弟想来
很久都没有结果,恳请各位帮忙....

ID Name CategoryList
1 品牌1 1,2,3

...全文
111 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
aierda 2010-08-31
  • 打赏
  • 举报
回复
非常感谢你们的帮忙!~~~
pt1314917 2010-08-24
  • 打赏
  • 举报
回复

create table Brand([ID] int,[Name] varchar(5))
insert Brand
select 1,'品牌1' union all
select 2,'品牌2' union all
select 3,'品牌3'
GO
create table BrandOfCategory([ID] int,[BrandID] int,[CategoryID] int)
insert BrandOfCategory
select 1,1,1 union all
select 2,1,2 union all
select 3,1,3
GO


select * from
(select id,name,CategoryList=stuff((select ','+ltrim([CategoryID]) from BrandOfCategory where brandid=a.id for xml path('')),1,1,'') from brand a)a
where CategoryList is not null


--结果:
id name CategoryList
----------- ----- ------------
1 品牌1 1,2,3
王向飞 2010-08-24
  • 打赏
  • 举报
回复
--> 测试数据:Brand表
if object_id('Brand表') is not null drop table Brand表

---->建表
create table Brand表([ID] int,[Name] varchar(5))
insert Brand表
select 1,'品牌1' union all
select 2,'品牌2' union all
select 3,'品牌3'
GO
--> 测试数据:BrandOfCategory表
if object_id('BrandOfCategory表') is not null drop table BrandOfCategory表

---->建表
create table BrandOfCategory表([ID] int,[BrandID] int,[CategoryID] int)
insert BrandOfCategory表
select 1,1,1 union all
select 2,1,2 union all
select 3,1,3
GO



--> 查询结果
SELECT * FROM Brand表
--> 删除表格
--DROP TABLE Brand表


--> 查询结果
SELECT * FROM BrandOfCategory表
--> 删除表格
--DROP TABLE BrandOfCategory表
SELECT distinct a.ID,a.Name,
CategoryList =STUFF(REPLACE(REPLACE(
(select CategoryID
FROM Brand表 a join BrandOfCategory表 b
on a.ID = b.BrandID
FOR XML AUTO
), '<b CategoryID="', ','), '"/>', ''), 1, 1, '')
FROM Brand表 a join BrandOfCategory表 b
on a.ID = b.BrandID

--
ID Name CategoryList
1 品牌1 1,2,3

22,209

社区成员

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

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