iT邦幫忙

1

MYSQL 的查詢方法的問題

各位大神好 小魯又來問問題了
今天是關於SQL的問題

假設我有一張表

id username creatorid
1 supUser null
2 小明 1
3 小黃 2
4 小白 1

然後企劃的需求是 要列出使用者的名字跟創造者的名字...

username creator
小明 supUser
小黃 小明
小白 supUser

請問這樣的SQL語法要怎麼下呀...
目前解不出來所以用PHP查兩次組出表格 但還是想解開這個疑問
麻煩大神們了

關鍵字SQL遞迴查詢..
MySQL不太熟XD
paicheng0111 iT邦研究生 1 級 ‧ 2018-11-01 21:05:32 檢舉
self join

2 個回答

3
ddtet
iT邦新手 5 級 ‧ 2018-11-01 18:54:08
最佳解答

這樣嗎?

SELECT u.username, c.username AS creator
FROM users AS u
INNER JOIN users AS c
WHERE c.id = u.creatorid
ORDER BY u.id ASC;

demo

ddtet 大大
太感謝你了 原來是要這樣Join 我自己在那裡 join半天join不進去
祝大大 寫code行雲流水 抓bug 信手拈來

ddtet iT邦新手 5 級 ‧ 2018-11-01 22:37:55 檢舉

忘了把第二個欄位換名字,編輯後補上去了。

0
Caesar
iT邦新手 5 級 ‧ 2018-11-04 20:25:55

剛好在學SQL 看到這篇
發現自己還是搞不太懂join的關係
嘗試做了一些測試

自己感覺用cross 加上條件
比較容易思考inner join如何形成

test code

x246libra大大
感謝你的答覆 我也是還搞不太懂Join的精隨 你的方式我也會參考看看XD

我要發表回答

立即登入回答