w3resource

MySQL Subquery Exercises: Query to select last 10 records from a table

MySQL Subquery: Exercise-18 with Solution

Write a MySQL query to select last 10 records from a table.

Sample table: employees

+-------------+-------------+-------------+----------+--------------------+------------+------------+----------+----------------+------------+---------------+
| EMPLOYEE_ID | FIRST_NAME  | LAST_NAME   | EMAIL    | PHONE_NUMBER       | HIRE_DATE  | JOB_ID     | SALARY   | COMMISSION_PCT | MANAGER_ID | DEPARTMENT_ID |
+-------------+-------------+-------------+----------+--------------------+------------+------------+----------+----------------+------------+---------------+
|         100 | Steven      | King        | SKING    | 515.123.4567       | 1987-06-17 | AD_PRES    | 24000.00 |           0.00 |          0 |   		  90 |
|         101 | Neena       | Kochhar     | NKOCHHAR | 515.123.4568       | 1987-06-18 | AD_VP      | 17000.00 |           0.00 |        100 |            90 |
|         102 | Lex         | De Haan     | LDEHAAN  | 515.123.4569       | 1987-06-19 | AD_VP      | 17000.00 |           0.00 |        100 |            90 |
|         103 | Alexander   | Hunold      | AHUNOLD  | 590.423.4567       | 1987-06-20 | IT_PROG    |  9000.00 |           0.00 |        102 |            60 |
|         104 | Bruce       | Ernst       | BERNST   | 590.423.4568       | 1987-06-21 | IT_PROG    |  6000.00 |           0.00 |        103 |            60 |
|         105 | David       | Austin      | DAUSTIN  | 590.423.4569       | 1987-06-22 | IT_PROG    |  4800.00 |           0.00 |        103 |            60 |
|         106 | Valli       | Pataballa   | VPATABAL | 590.423.4560       | 1987-06-23 | IT_PROG    |  4800.00 |           0.00 |        103 |            60 |
|         107 | Diana       | Lorentz     | DLORENTZ | 590.423.5567       | 1987-06-24 | IT_PROG    |  4200.00 |           0.00 |        103 |            60 |
|         108 | Nancy       | Greenberg   | NGREENBE | 515.124.4569       | 1987-06-25 | FI_MGR     | 12000.00 |           0.00 |        101 |           100 |
.........
|         206 | William     | Gietz       | WGIETZ   | 515.123.8181       | 1987-10-01 | AC_ACCOUNT |  8300.00 |           0.00 |        205 |           110 |
+-------------+-------------+-------------+----------+--------------------+------------+------------+----------+----------------+------------+---------------+

View the table

Code:

-- Selecting all columns from a subset of the employees table, ordered by employee_id in descending order, and limiting the result to the first 10 rows
SELECT * FROM (
    SELECT * FROM employees ORDER BY employee_id DESC LIMIT 10
) sub 
-- Sorting the result set from the subset in ascending order based on employee_id
ORDER BY employee_id ASC;

Explanation:

  • This MySQL code selects all columns from a subset of the "employees" table.
  • The subset is obtained by first ordering the "employees" table by employee_id in descending order and then limiting the result to the first 10 rows using the LIMIT clause.
  • The outer query then sorts the result set obtained from the subset in ascending order based on employee_id. This essentially reverses the order of the rows obtained from the subset, returning them back to their original order.

MySQL Subquery Syntax :

MySQL subquery syntax


- The subquery (inner query) executes once before the main query (outer query) executes.
- The main query (outer query) use the subquery result.

MySQL SubQueries: Find the names, salary of the employees who earn the same salary as the minimum salary for all departments.



Go to:


PREV :Write a MySQL query to find the 4th minimum salary in the employees table.
NEXT :Write a MySQL query to list the department ID and name of all the departments where no employee is working.

Structure of 'hr' database :

hr database


MySQL Code Editor:

Have another way to solve this solution? Contribute your code (and comments) through Disqus.

What is the difficulty level of this exercise?



Follow us on Facebook and Twitter for latest update.