Sql 类别和子类别数据库
我在检索列值时遇到了一个问题,就像依赖其他列一样 我试着用外部连接和嵌套选择来实现这一点,但我想我脑子里找不到解决方案Sql 类别和子类别数据库,sql,join,Sql,Join,我在检索列值时遇到了一个问题,就像依赖其他列一样 我试着用外部连接和嵌套选择来实现这一点,但我想我脑子里找不到解决方案 Categories Table: ID Name ParentID -------------------------------- 1 Software NULL 2 Domains NULL 3 Games NULL 4 Accounts
Categories Table:
ID Name ParentID
--------------------------------
1 Software NULL
2 Domains NULL
3 Games NULL
4 Accounts NULL
5 Others NULL
6 Security Software 1
7 Operating Systems 1
8 Browsers 1
9 Developer Tools 1
10 .com Domains 2
11 .net Domains 2
12 .org Domains 2
13 Online Games 3
14 PC Games 3
15 PS Games 3
16 RapidShare Accounts 4
17 4shared Account 4
18 Web Templates 5
19 Flash Intros 5
20 Firewall 6
21 Antivirus 6
我想做什么来显示父类别名称
而不是parentID
那样
ID Name ParentID
--------------------------------
1 Software NULL
2 Domains NULL
3 Games NULL
4 Accounts NULL
5 Others NULL
6 Security Software Software
7 Operating Systems Software
8 Browsers Software
9 Developer Tools Software
10 .com Domains Domains
11 .net Domains Domains
12 .org Domains Domains
13 Online Games Games
14 PC Games Games
15 PS Games Games
16 RapidShare Accounts Accounts
17 4shared Account Accounts
18 Web Templates Others
19 Flash Intros Others
20 Firewall Security Software
21 Antivirus Security Software
你需要在桌子上加入两次
SELECT c1.Id, c1.Name as parentname , c2.name
FROM categories c1
JOIN categories c2
ON c1.id = c2.parentid
结果将是:
ID ParentName Name
1 software security software
1 software operating software
2 domains .com domains
2 domains .net domains
2 domains .org domains
3 games pc games
这将为您提供parentID、parentName以及子类别或子类别的名称
如果需要,还可以将其更改为包含子类别id
根据您的编辑,您可以使用以下内容:
create table categories
(
id int,
name varchar(50),
parentid int
)
insert into categories values(1, 'software', null)
insert into categories values(2, 'domains', null)
insert into categories values(3, 'games', null)
insert into categories values(6, 'security software', 1)
insert into categories values(7, 'operating systems', 1)
insert into categories values(8, 'browsers', 1)
insert into categories values(10, '.com domains', 2)
insert into categories values(11, '.net domains', 2)
insert into categories values(12, '.org domains', 2)
insert into categories values(13, 'online games', 3)
insert into categories values(14, 'pc games', 3)
insert into categories values(15, 'ps games', 3)
select c1.id
, c1.name
, (select name from categories where c1.parentid = categories.id) as ParentId
from categories c1
这将导致:
应该是
选择c2.Id.
?OP似乎只是想要myID、myName、parentName,而不是myID、myName,parentID@SamDeHaan现在还不清楚他们想要什么,上面的查询向他们展示了如何获取他们请求的记录的父名称。