0
得到另一個專欄中,我有一個表的設置是這樣的:使用SELECT來獲得ID,然後從另一行
id (INT) | display_name (VARCHAR) | referral (INT)
轉診轉介用戶的ID。有沒有一種方法可以提取引薦ID,然後使用它在一次調用中獲取引用成員的display_name?或者兩個獨立的電話更容易處理?
得到另一個專欄中,我有一個表的設置是這樣的:使用SELECT來獲得ID,然後從另一行
id (INT) | display_name (VARCHAR) | referral (INT)
轉診轉介用戶的ID。有沒有一種方法可以提取引薦ID,然後使用它在一次調用中獲取引用成員的display_name?或者兩個獨立的電話更容易處理?
本質上,你需要做的就是加入你自己的表格。
SELECT child.*, parent.display_name AS referral_name
FROM users AS child
JOIN users AS parent ON child.referral = parent.id
WHERE child.id = 2
這個別名用戶表作爲孩子,然後加入同一個表(別名爲父母)。
+----+--------------+----------+---------------+
| id | display_name | referral | referral_name |
+----+--------------+----------+---------------+
| 2 | Jim | 1 | Tim |
+----+--------------+----------+---------------+
如果轉診關係可能不存在,那麼你可以使用LEFT JOIN代替:
SELECT child.*, parent.display_name AS referral_name
FROM users AS child
LEFT JOIN users AS parent ON child.referral = parent.id
+----+--------------+----------+---------------+
| id | display_name | referral | referral_name |
+----+--------------+----------+---------------+
| 1 | Tim | NULL | NULL |
| 2 | Sam | 1 | Tim |
| 3 | Kimberly | 1 | Tim |
+----+--------------+----------+---------------+
下面的查詢會做你想要通過什麼加入表與本身。
select t2.display_name from table_name t1 join table_name t2 on t1.referral=t2.id
其中table_name的是你的表的名稱。
太棒了。謝謝! –