sql >> Databáze >  >> RDS >> Mysql

SQL Výběr ze dvou tabulek s vnitřním spojením a limitem

Můžete to udělat:

SELECT 
  ser.id, 
  ser.name, 
  s.status, 
  s.timestamp 
FROM Service ser 
INNER JOIN status as s ON s.service_id = ser.id
INNER JOIN
(
   SELECT
     service_id, 
     MAX(timestamp) AS MaxDate
   FROM status 
   GROUP BY service_id
) AS a  ON a.service_id = s.service_id 
       AND a.MaxDate = s.timestamp;

Spojení s poddotazem:

SELECT
  service_id, 
  MAX(timestamp) AS MaxDate
FROM status 
GROUP BY service_id

Odstraní všechny stavy kromě toho s nejnovějším datem.



  1. Jak zjistit, zda je vypočítaný sloupec deterministický na serveru SQL Server

  2. Jak nahradit středně pokročilý MySQL nebo MariaDB Master serverem Binlog pomocí MaxScale

  3. MySQL pivot řádek do dynamického počtu sloupců

  4. Jak nastavit řazení pro připojení v SQL Server?