自連線:資料表與自身進行連線。
從乙個包含欄目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...