SQL 相同的递归查询 table

SQL Recursive query over same table

我是 SQL 的新手,我正在尝试对同一个 table 进行递归查询以查找“主经纪人”的经纪人 我有一个看起来像这样的 table(它可以增长到任意数量的行和深度)

所以我需要这样的结果:

master_id => broker_id

我已经检查了如何操作,我得到了:

WITH admin_has_master_brokers
AS (
    SELECT DISTINCT master_broker_id, admin_id
        FROM admin_has_master_brokers
            
    UNION ALL
    /*I DO NOT KNOW HOW TO DO THIS SECTION*/
    SELECT    
        master_broker_id, admin_id
    FROM admin_has_master_brokers
)
SELECT 
    *
FROM 
    admin_has_master_brokers
ORDER BY master_broker_id ASC

但我无法理解如何执行递归部分以仅获得我需要的结果,因为我得到的是:

有什么想法吗?

如果原始 table 是 Mytable,查询将列出每个 master_broker_id 的所有后代。

WITH RECURSIVE admin_has_master_brokers
AS (
    SELECT DISTINCT master_broker_id master, master_broker_id, admin_id
    FROM mytable
       
    UNION ALL

    SELECT a.master,  
        m.master_broker_id, m.admin_id
    FROM admin_has_master_brokers a
    JOIN mytable m ON m.master_broker_id = a.admin_id
)
SELECT DISTINCT master, admin_id    
FROM 
    admin_has_master_brokers
ORDER BY master, admin_id