Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Meminimalkan kueri SQL menggunakan join dengan hubungan satu-ke-banyak

Anda bisa mendapatkan semuanya dalam satu kueri dengan gabungan sederhana, mis.:

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

Ini mengembalikan semua data, tetapi agak merepotkan untuk dikonsumsi, karena Anda tetap harus mengulangi setiap orang. Anda dapat melangkah lebih jauh dan mengelompokkannya bersama:

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

Anda akan mendapatkan sesuatu seperti ini sebagai output:

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. Bagaimana cara mendapatkan satu kolom hasil mysql_query ke dalam array?

  2. Permintaan untuk memilih string yang diakhiri dengan karakter tertentu

  3. Bagaimana cara memperbesar Diagram EER di MySQL Workbench?

  4. Cara mengelola sesi di Node.js menggunakan Passport, Redis, dan MySQL

  5. Bagaimana cara membuang file MySQL tanpa Kunci Asing melalui baris perintah?