mssql 每个类别查询出一个产品,父子关系

qq_32374549 2015-10-28 12:25:01
求教。。产品类别表,产品表,查询每个类别下面查出一个对应产品,产品表有产品类别表的ID

每个类别查询一个产品,比如十个类别,查出来十条产品信息,每个产品对应里面一个类别
...全文
141 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_32374549 2015-10-28
  • 打赏
  • 举报
回复
引用 1 楼 yangb0803 的回复:
先將两表连接起来 然后递归查询。
能不能把代码写出来看一下?我是嵌套在web程序里的,请指点
道玄希言 2015-10-28
  • 打赏
  • 举报
回复
先將两表连接起来 然后递归查询。
landa_matt 2015-10-28
  • 打赏
  • 举报
回复

--是这样吗?
;WITH 产品类别 (ID, NAME) AS
(
	SELECT 1, 'A' UNION ALL
	SELECT 2, 'B' 
),
产品 (ID, NAME, FK_ID) AS
(
	SELECT 1, 'NAME_1', 1 UNION ALL
	SELECT 2, 'NAME_2', 2 UNION ALL
	SELECT 3, 'NAME_3', 1 
)
SELECT 
	B.ID AS 产品类别ID,
	B.NAME AS 产品类别NAME,
	A.ID AS 产品ID,
	A.NAME AS 产品NAME
FROM 
(
	SELECT * FROM 
	(
		SELECT RANK() OVER(PARTITION BY FK_ID ORDER BY ID) AS PLACE, *
		FROM 产品 

	) AS C
	WHERE C.PLACE =1
)AS A
INNER JOIN 产品类别 AS B ON A.FK_ID=B.ID
ORDER BY 产品类别ID
Tiger_Zhao 2015-10-28
  • 打赏
  • 举报
回复
        SELECT c.名称, p.名称
FROM 类别表 c
OUTER APPLY (SELECT TOP 1 *
FROM 产品表
WHERE 产品表.类别ID = c.ID
) p

34,590

社区成员

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

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