使用嵌套语句加入
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
我有这些 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