【发布时间】:2021-06-17 23:57:35
【问题描述】:
我正在尝试创建一个允许我执行此操作的 SQL 查询:
我在 SQL Server 2017 中有 3 个表:
CREATE TABLE [dbo].[PRODUCTCATEGORY]
(
[PROD_ID] [int] NOT NULL,
[CAT_ID] [int] NOT NULL
CONSTRAINT [PK_PRODUCTCATEGORY]
PRIMARY KEY CLUSTERED ([PROD_ID] ASC, [CAT_ID] ASC)
)
CREATE TABLE [dbo].[CATEGORY]
(
[CAT_ID] [int] IDENTITY(1,1) NOT NULL,
[CAT_TITLE] [varchar](50) NOT NULL
CONSTRAINT [PK_CATEGORY]
PRIMARY KEY CLUSTERED ([CAT_ID] ASC)
)
CREATE TABLE [dbo].[PRODUCT]
(
[PROD_ID] [int] IDENTITY(1,1) NOT NULL,
[PROD_TITLE] [varchar](50) NOT NULL
CONSTRAINT [PK_PRODUCT]
PRIMARY KEY CLUSTERED ([PROD_ID] ASC)
)
- 一个产品可以有 1 到多个类别
- 一个类别可以有 1 到多个产品
| PROD_ID | PROD_TITLE |
|---|---|
| 1 | Book 1 |
| 2 | Book 2 |
| CAT_ID | CAT_TITLE |
|---|---|
| 1 | Cat 1 |
| 2 | Cat 2 |
| 3 | Cat 3 |
| PROD_ID | CAT_ID |
|---|---|
| 1 | 1 |
| 1 | 2 |
| 2 | 1 |
| 2 | 3 |
我想找回这个:
| CAT_ID |CAT_TITLE | PRODUCTS |
|:------- |:--------:|:------------------------------------------------------------------------|
| 1 | Cat 1 |[{"PROD_ID":1,"PROD_TITLE":"Book 1"},{"PROD_ID":2,"PROD_TITLE":"Book 2"}]|
| 2 | Cat 2 |[{"PROD_ID":1,"PROD_TITLE":"Book 1"}] |
| 3 | Cat 3 |[{"PROD_ID":2,"PROD_TITLE":"Book 2"}] |
感谢您的帮助
【问题讨论】:
-
请向我们展示您的尝试。
标签: sql-server tsql group-by many-to-many json-query