sql >> Database teknologi >  >> RDS >> Mysql

Minimering af SQL-forespørgsler ved hjælp af join med en-til-mange-relation

Du kan få det hele i en enkelt forespørgsel med en simpel join, f.eks.:

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

Dette returnerer alle data, men det er lidt af en smerte at forbruge, da du alligevel bliver nødt til at gentage hver person. Du kan gå videre og gruppere dem sammen:

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

Du får noget som dette som output:

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


  1. Html / Php-formular tilføjes ikke til SQL-databasen

  2. Konfiguration af LDAP-godkendelse og gruppekortlægning med MariaDB

  3. pt-query-digest-alternativer - MySQL-forespørgselsstyring og -overvågning med ClusterControl

  4. Fast i opbygningen af ​​MySQL-forespørgsel