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

Минимизиране на SQL заявки чрез присъединяване с връзка един към много

Можете да получите всичко с една заявка с просто присъединяване, напр.:

SELECT   d.name AS 'department', p.name AS 'name'
FROM     department d
  LEFT JOIN people p ON p.department_id = d.id
ORDER BY department

Това връща всички данни, но е малко трудно да се консумират, тъй като така или иначе ще трябва да преглеждате всеки човек. Можете да отидете по-далеч и да ги групирате заедно:

SELECT   d.name AS 'department',
         GROUP_CONCAT(p.name SEPARATOR ', ') AS 'name'
FROM     department d
  LEFT JOIN people p ON p.department_id = d.id
GROUP BY department

Като изход ще получите нещо подобно:

department | name
-----------|----------------
sales      | Tom, Bill, Rachel
marketing  | Jessica, John


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Проверете времето за отговор на изпратеното съобщение - възможно ли е само с SQL?

  2. Защо SQLSTATE[HY000]:Обща грешка?

  3. SEC_TO_TIME() Примери – MySQL

  4. Как да трансформирате MSSQL CTE заявка в MySQL?

  5. Play 2.4 - Slick 3.0.0 - DELETE не работи