Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Giảm thiểu các truy vấn SQL bằng cách sử dụng phép nối với mối quan hệ một-nhiều

Bạn có thể lấy tất cả trong một truy vấn với một phép nối đơn giản, ví dụ:

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

Điều này trả về tất cả dữ liệu, nhưng hơi khó để sử dụng, vì bạn sẽ phải lặp lại từng người một. Bạn có thể đi xa hơn và nhóm chúng lại với nhau:

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

Bạn sẽ nhận được một thứ như thế này làm đầu ra:

bộ phận
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. Lưu trữ dễ dàng hình ảnh do người dùng tải lên trên hệ thống tệp

  2. Không thể nâng cấp SonarQube từ 4.5.2 lên 5.0

  3. Tìm kiếm toàn bộ bảng trong mySQL để tìm một chuỗi

  4. Chèn danh sách chứa nhiều giá trị trong MySQL bằng pymysql

  5. Mệnh đề IN không sử dụng chỉ mục