使用嵌套语句加入

JOIN with NESTED STATEMENT

我有这些 table:

CREATE TABLE Financial_plan 
(
    ID INT NOT NULL,
    advisor_ID INT NOT NULL,
    product_ID INT NOT NULL,
    price INT NOT NULL,

    PRIMARY KEY (ID)
);

CREATE TABLE Advisor 
( 
    ID INT NOT NULL,  
    role_id INT NOT NULL,  
    office_id INT NOT NULL,  
    name VARCHAR (50),  
    surname VARCHAR (50) NOT NULL,  
    active NUMERIC (1) NOT NULL,  

    PRIMARY KEY (ID)  
);

然后我会像这样创建一个新专栏count_plan

SELECT 
    Advisor_ID, count_plan 
FROM 
    (SELECT 
         Financial_plan.Advisor_ID, 
         COUNT(Financial_plan.ID) AS count_plan
     FROM 
         Financial_plan
     GROUP BY 
         Financial_plan.Advisor_ID
     ORDER BY 
         count_plan DESC)

我想用顾问 table 加入一个新的 table 列 count_plan,但无法弄清楚

我试试

SELECT 
    Advisor_ID, 
    count_plan 
FROM 
    (SELECT 
         Financial_plan.Advisor_ID, 
         COUNT(Financial_plan.ID) AS count_plan
     FROM 
         Financial_plan
     GROUP BY 
         Financial_plan.Advisor_ID
     ORDER BY 
         count_plan DESC) Advisor_plan
LEFT JOIN 
    Advisor ON Advisor_plan.Advisor_ID = Advisor.ID

此语句不执行连接。

我想添加来自顾问的信息 table 以按计划数量记录最佳顾问。

所以我想table这样

Advisor_ID count_plan role_id office_id name surname active

由于每个 advisor_id 都是独一无二的,因此您有一个 1:!与顾问的关系,因此您只需添加缺少的列

SELECT 
    Advisor_ID, 
    count_plan,
    role_id,
    office_id,
    name,
    surname,
    active
FROM 
    (SELECT 
         Financial_plan.Advisor_ID, 
         COUNT(Financial_plan.ID) AS count_plan
     FROM 
         Financial_plan
     GROUP BY 
         Financial_plan.Advisor_ID
     ORDER BY 
         count_plan DESC) Advisor_plan
LEFT JOIN 
    Advisor ON Advisor_plan.Advisor_ID = Advisor.ID
Advisor_ID | count_plan | role_id | office_id | name | surname | active
---------: | ---------: | ------: | --------: | :--- | :------ | -----:

db<>fiddle here