gpt4 book ai didi

mysql - 如何连接两个sql子查询

转载 作者:行者123 更新时间:2023-11-29 09:48:38 25 4
gpt4 key购买 nike

我有 2 张 table
第一个名字是(员工)有 3 列(emp_id、first_name、last_name)
第二个表名称是 (works_with),也有 3 列 (emp_id、client_id、total_sales)
在 (works_with) 表中,相同的 emp_id 可以与不同的 client_id 相关

我需要从(work_with)表中提取(first_name)和(last_name)表单(employee)表及其超过30000的(total_sales)

我使用此代码为我提供了 (emp_id)*,其 (total_sales) 超过 30000

SELECT SUM(works_with.total_sales), works_with.emp_id
FROM works_with
WHERE works_with.emp_id IN (SELECT works_with.emp_id
FROM works_with
WHERE works_with.total_sales > 30000)
GROUP BY works_with.emp_id;

我用这段代码给了我那些(emp_id)的(first_name)和(last_name)*

SELECT employee.first_name, employee.last_name
FROM employee
WHERE employee.emp_id IN (SELECT works_with.emp_id
FROM works_with
WHERE works_with.total_sales > 30000);

有没有办法连接这两个代码或任何其他方式来获得我想要的结果

谢谢

最佳答案

您只是在寻找JOIN吗?

SELECT e.first_name, e.last_name, SUM(ww.total_sales)
FROM works_with ww JOIN
employee e
ON ew.emp_id = ww.emp_id
WHERE ww.emp_id IN (SELECT ww2.emp_id
FROM works_with ww2
WHERE ww.total_sales > 30000
)
GROUP BY e.emp_id, e.first_name, e.last_name;

不需要子查询。它正在实现这个逻辑:

SELECT e.first_name, e.last_name, SUM(ww.total_sales)
FROM works_with ww JOIN
employee e
ON ew.emp_id = ww.emp_id
GROUP BY e.emp_id, e.first_name, e.last_name
HAVING MAX(ww.total_sales) > 30000;

但是,我怀疑您想要:

SELECT e.first_name, e.last_name, SUM(ww.total_sales)
FROM works_with ww JOIN
employee e
ON ew.emp_id = ww.emp_id
GROUP BY e.emp_id, e.first_name, e.last_name
HAVING SUM(ww.total_sales) > 30000;

关于mysql - 如何连接两个sql子查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55210478/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com