Re: [SQL ] 遞迴查詢
###########
# test data
create table tmp (
UID int,
marID int
);
insert into tmp select 1, null;
insert into tmp select 2, 1;
insert into tmp select 3, 1;
insert into tmp select 4, 2;
insert into tmp select 5, 7;
insert into tmp select 6, 4;
insert into tmp select 7, null;
################
# Google 關鍵字:
#
# How to create a MySQL hierarchical recursive query
select UID,marID
from
(
select * from tmp order by marID
) t1,
(
select @pv := 1
) t2
where find_in_set(marID, @pv)
and length(@pv := concat(@pv, ',', UID))
※ 引述《bill0205 (ZzZz)》之銘言:
: (針對 SQL 語言的問題,用這個標題。請用 Ctrl+Y 砍掉這行)
: 資料庫名稱: MySQL
: 資料庫版本: 5.7
: 內容/問題描述:
: 我有一張table(users) 欄位分別為 UID (PK) , marID(FK,users.UID)
: 我想做遞迴查詢
: 假設有資料為
: UID marID
: 1 NULL
: 2 1
: 3 1
: 4 2
: 5 7
: 6 4
: 7 NULL
: 我有找到相關方法
: with tmpTB ( ... union all ... ) select * from tmpTB;...
: 但是還是失敗
: 我想做的是能否利用一個UID 就能找到所有部屬
: ex UID = 1
: 則會查到
: UID marID
: 2 1
: 3 1
: 4 2
: 6 4
: 不知道有沒有類似方法呢 感謝各位
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.221.80.36
※ 文章網址: https://www.ptt.cc/bbs/Database/M.1522142679.A.898.html
推
03/28 10:46,
6年前
, 1F
03/28 10:46, 1F
→
03/28 11:11,
6年前
, 2F
03/28 11:11, 2F
→
03/28 11:11,
6年前
, 3F
03/28 11:11, 3F
→
03/28 13:03,
6年前
, 4F
03/28 13:03, 4F
→
03/28 13:03,
6年前
, 5F
03/28 13:03, 5F
→
03/28 13:04,
6年前
, 6F
03/28 13:04, 6F
→
03/28 13:04,
6年前
, 7F
03/28 13:04, 7F
→
03/28 13:11,
6年前
, 8F
03/28 13:11, 8F
→
03/28 13:11,
6年前
, 9F
03/28 13:11, 9F
→
03/28 13:11,
6年前
, 10F
03/28 13:11, 10F
※ 編輯: cutekid (1.168.27.75), 03/28/2018 13:12:12
推
03/28 15:26,
6年前
, 11F
03/28 15:26, 11F
討論串 (同標題文章)
Database 近期熱門文章
PTT數位生活區 即時熱門文章