Mysql 如何联接两个sql子查询

Mysql 如何联接两个sql子查询,mysql,sql,Mysql,Sql,我有两张桌子 第一个名字是(员工)有3列(emp\u id、名字、姓氏) 第二个表名为(works_with),还有3列(emp_id、client_id、total_sales) 在(works_with)表中,相同的emp_id可以与不同的客户机_id相关 我需要从(work_with)表中提取(first_name)和(last_name)form(employee)表及其(total_sales)超过30000个 我用这个代码给我的(emp_id)*(总销售额)超过30000 SELEC

我有两张桌子
第一个名字是(员工)有3列(emp\u id、名字、姓氏)
第二个表名为(works_with),还有3列(emp_id、client_id、total_sales)
在(works_with)表中,相同的emp_id可以与不同的客户机_id相关

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

我用这个代码给我的(emp_id)*(总销售额)超过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)的(名字)和(姓氏)*

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


谢谢

您是否正在寻找一个
加入

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;

因为我注意到另一个答案中有一个错误,所以在此作出贡献。有关不同类型的联接如何工作,请参见此处:


这很有用我真的很感激
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;
SELECT 
    Employee.First_Name, 
    Employee.Last_Name, 
    SUM(WW.Total_Sales)
FROM 
    Works_With AS WW
        INNER JOIN Employee AS Employee
            ON Employee.EMP_ID = WW.EMP_ID
GROUP BY 
    Employee.EMP_ID, 
    Employee.First_Name, 
    Employee.Last_Name
HAVING 
    SUM(WW.Total_Sales) > 30000;