【发布时间】:2014-03-31 20:21:41
【问题描述】:
刚刚添加了一个带有 cmets 的 SQLFiddle 示例:http://sqlfiddle.com/#!3/d1cce
我正在尝试归档以获取查询中最主要的类别(Category.CategoryId = NULL)
项目表:
- 1 |标题 | 2
- 1 |标题2 | 3
类别表:
- 1 |主类示例 |空
- 2 |子类别示例 | 1
- 3 |子类别示例 | 2
结果必须是:
- 1 |标题 |主类别示例
- 2 |标题2 |主类别示例
点赞:
select item.id, item.title (MAIN category where CategoryId = NULL)
from .....
如您所见,我可以将Item.CategoryId 设置为SUBSUB 类别或SUB 类别。
但是每次我想要主要类别作为我的查询的结果
我怎样才能做到这一点?
再举一个例子让自己更清楚:
- 1-项目 1-主要 2
表格:
create table Item
(
Id INT IDENTITY(1,1) NOT NULL,
CategoryId INT NOT NULL,
Title VARCHAR(80) NOT NULL,
PRIMARY KEY (id)
)
insert into Itemvalues('Item 1', 5)
create table Category
(
Id INT IDENTITY(1,1) NOT NULL,
Title VARCHAR(10) NOT NULL,
CategoryId INT,
PRIMARY KEY (id)
)
insert into Category values('Main item 1', NULL)
insert into Category values('Sub item under Main item 1', 1)
insert into Category values('Main 2', NULL)
insert into Category values(Sub item under 2', 2)
insert into Category values('Subsub item under subitem 2', 4)
【问题讨论】:
-
我不明白你的问题!
-
我不确定你到底想要什么?
-
kkkk!! thx @Mack(我想他想要一个自我加入)
-
是的,自联接是我认为我需要在类别表中自联接,直到它成为主要类别
标签: sql sql-server inner-join self-join