mysql - 从MYSQL中工资第三高的员工表中获取所有员工工资

标签 mysql

已编写以下查询:

mysql > select * from employees where Salary NOT IN (select Salary from employees limit 3);

给出以下错误:

ERROR 1235 (42000): This version of MySQL doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery'

最佳答案

您的查询中有 2 个问题。首先是语法,第二是 LIMIT SELECT 中没有 ORDER BY。如果没有 ORDER,结果每次都会改变(Ramdom)

您可以使用如下查询来完成此操作:

SELECT e.* FROM employees e WHERE e.salery NOT IN 
(SELECT * FROM (
    SELECT s.salery
    FROM employees s
    ORDER BY salery LIMIT 3) AS tmp)
ORDER BY e.salery ;

这是我的示例:

MariaDB [bernd]> select * FROM employees;
+----+--------+--------+
| id | salery | name   |
+----+--------+--------+
|  1 |    100 | Bernd  |
|  2 |    500 | Peter  |
|  3 |    300 | Paul   |
|  4 |   1234 | Mary   |
|  5 |    800 | Erwin  |
|  6 |    777 | Hubert |
+----+--------+--------+
6 rows in set (0.00 sec)

MariaDB [bernd]>

MariaDB [bernd]> SELECT e.* FROM employees e WHERE e.salery NOT IN
    -> (SELECT * FROM (
    ->     SELECT s.salery
    ->     FROM employees s
    ->     ORDER BY salery LIMIT 3) AS tmp)
    -> ORDER BY e.salery ;
+----+--------+--------+
| id | salery | name   |
+----+--------+--------+
|  6 |    777 | Hubert |
|  5 |    800 | Erwin  |
|  4 |   1234 | Mary   |
+----+--------+--------+
3 rows in set (0.00 sec)

关于mysql - 从MYSQL中工资第三高的员工表中获取所有员工工资,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47970543/

相关文章:

mysql - 如何创建与 Fusion Tables "summarize"函数等效的 MySQL 查询?

mysql - 查询多个供应商的职位

python - 使用 flask-reSTLess 出现 404 错误

php - 查询增量列不起作用

php - 无法将数据插入子表SQL phpMyAdmin

MySQL 在线与批处理 - 防止 MySQL cron 作业阻止在线查询的选项?

mysql - Oracle中如何将多行数据合并到单个结果记录中?

Python 2.7 - 在一次执行中从字典键值插入 MySql 中的多个值

mysql - 将用 phpmyadmin 导出的 mysql 数据库导入本地 lamp stack

php - MySQL 服务器拒绝来自本地 PHP 脚本的连接,但拒绝来自本地 MySQL 客户端的连接