SQL自連線實戰

2021-10-09 19:30:57 字數 1098 閱讀 7244

自連線:資料表與自身進行連線。

從乙個包含欄目id , 欄目名稱和父欄目id的表中查詢父欄目名稱和其他子欄目名稱。

將一張表分為父表和子表

父表categoryid

categoryname

資訊科技

軟體開發

美術設計

子表categoryid

pidcategoryname

資料庫web開發

ps技術

辦公資訊

-- 1 建立乙個表

create table `category` (

`categoryid` int(10) unsigned not null auto_increment comment '主題id',

`pid` int(10) not null comment '父id',

`categoryname` varchar(50) not null comment '主題名字',

primary key (`categoryid`)

) engine=innodb auto_increment=9 default charset=utf8

-- 2 插入資料

insert into `category` (`categoryid`, `pid`, `categoryname`)

values('2','1','資訊科技'),

('3','1','軟體開發'),

('4','3','資料庫'),

('5','1','美術設計'),

('6','3','web開發'),

('7','5','ps技術'),

('8','2','辦公資訊');

-- 3 編寫sql語句,將欄目的父子關係呈現出來 (父欄目名稱,子欄目名稱)

-- 核心思想:把一張表看成兩張一模一樣的表,然後將這兩張表連線查詢(自連線)

select a.categoryname as '父欄目',b.categoryname as '子欄目'

from category as a,category as b

where a.`categoryid`=b.`pid`

SQL自連線查詢

問題 表testcolor title color sign a 紅 111 b 紅 222 a 綠 333 c 紅 444 轉檢視 title 紅 綠 a 111 333 b 222 null c 444 null 解答 declare sql nvarchar 1000 set sql sele...

SQL語言 自連線

自連線意思就是表與其自身進行連線。雖然自連線並不是必須的,可以通過其他方式來完成,但是在某些情況下,使用自連線就比較方便。比如一張員工資訊表,這張表上有該員工的基本資訊,還有指明了他的上司的id號。但是同時他的上司也是員工,在這張表上也有他的資訊。如果我們需要顯示出所有員工的姓名和他上司的姓名,雖然...

SQL多表連線實戰

操作符名稱 描述inner join 如果表中至少乙個匹配,則返回行 left join 即使右邊中沒有匹配,也從左表中返回所有的行 right join 即使左表中沒有匹配,也從右邊中返回所有的行 連線查詢 如需要多張資料表的資料進行查詢,則可通過連線運算子實現多個查詢 內連線 inner joi...