首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL多选?

MySQL多选?
EN

Stack Overflow用户
提问于 2013-11-12 18:48:18
回答 6查看 78关注 0票数 0

我正在员工数据库上运行查询。我想返回员工工资超过$x金额的行

代码语言:javascript
复制
SELECT 
    employees_table.employee_id, 
    employees_table.employee_name,
    (SELECT SUM(wages_table.wages)
     FROM wages_table
     WHERE wages_table.employee_id = employees_table.employee_id) AS wages
WHERE wages >= 100"

它返回“未知的列工资”

EN

回答 6

Stack Overflow用户

发布于 2013-11-12 18:51:33

我认为你想要:

代码语言:javascript
复制
SELECT employees_table.employee_id,
  employees_table.employee_name,
  SUM(wages_table.wages) AS wages
FROM employees_tablee
INNER JOIN wages_table ON wages_table.employee_id = employees_table.employee_id
GROUP BY 1, 2
HAVING SUM(wages_table.wages) >= 100
票数 2
EN

Stack Overflow用户

发布于 2013-11-12 18:50:36

不能在WHERE子句中使用别名wages >= 100

我相信您只是想进行一个JOINGROUP BY查询。然后,您可以使用允许使用别名的HAVING来过滤工资:

代码语言:javascript
复制
SELECT 
    e.employee_id, 
    e.employee_name,
    SUM(w.wages) AS wages
FROM wages_table w
JOIN employee_table e ON w.employee_id = e.employee_id
GROUP BY e.employee_id
HAVING wages >= 100
票数 1
EN

Stack Overflow用户

发布于 2013-11-12 18:52:40

尝尝这个

代码语言:javascript
复制
select * from (
SELECT employees_table.employee_id, employees_table.employee_name,
        (SELECT SUM(wages_table.wages)
           FROM wages_table
       WHERE wages_table.employee_id = employees_table.employee_id) AS wages
       )tmp where wages>=100
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19927095

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档