Mysql
 sql >> база данни >  >> RDS >> Mysql

как да сортирам реда на LEFT JOIN в SQL заявка?

Опитайте да използвате MAX с GROUP BY .

SELECT u.userName, MAX(c.carPrice)
FROM users u
    LEFT JOIN cars c ON u.id = c.belongsToUser
WHERE u.id = 4;
GROUP BY u.userName;

Допълнителна информация за GROUP BY

Клаузата group by се използва за разделяне на избраните записи в групи въз основа на уникални комбинации от група по колони. Това след това ни позволява да използваме агрегатни функции (напр. MAX, MIN, SUM, AVG, ...), които ще бъдат приложени към всяка група записи на свой ред. Базата данни ще върне един запис на резултата за всяко групиране.

Например, ако имаме набор от записи, представящи температурите във времето и местоположението в таблица като тази:

Location   Time    Temperature
--------   ----    -----------
London     12:00          10.0
Bristol    12:00          12.0
Glasgow    12:00           5.0
London     13:00          14.0
Bristol    13:00          13.0
Glasgow    13:00           7.0
...

След това, ако искаме да намерим максималната температура по местоположение, тогава трябва да разделим температурните записи на групи, където всеки запис в определена група има същото местоположение. След това искаме да намерим максималната температура на всяка група. Заявката за това ще бъде както следва:

SELECT Location, MAX(Temperature)
FROM Temperatures
GROUP BY Location;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Google Cloud Dataflow, дефиниран от потребителя MySQL източник

  2. Грешка в MySql:Не може да се актуализира таблицата в съхранената функция/тригера, защото вече се използва от израз, който е извикал тази съхранена функция/тригер

  3. Обединяване на две подобни таблици в MySQL

  4. Doctrine2 в Symfony2:Как мога да видя кое извикване на обект води към заявка?

  5. PHP MySQL получава местоположения в радиус на местоположението на потребителя от GPS