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

Nối một hàng với nhiều hàng trong một bảng khác

Sử dụng:

   SELECT x.name,
          GROUP_CONCAT(y.property SEPARATOR ', ')
     FROM PEOPLE x
LEFT JOIN PROPERTIES y ON y.name = x.name
    WHERE x.age > 26
 GROUP BY x.name

Bạn muốn hàm MySQL GROUP_CONCAT ( tài liệu ) để trả về danh sách được phân tách bằng dấu phẩy của giá trị PROPERTIES.property.

Tôi đã sử dụng THAM GIA TRÁI thay vì THAM GIA để bao gồm các bản ghi NGƯỜI KHÔNG có giá trị trong bảng THUỘC TÍNH - nếu bạn chỉ muốn danh sách những người có giá trị trong bảng THUỘC TÍNH, hãy sử dụng:

   SELECT x.name,
          GROUP_CONCAT(y.property SEPARATOR ', ')
     FROM PEOPLE x
     JOIN PROPERTIES y ON y.name = x.name
    WHERE x.age > 26
 GROUP BY x.name

Tôi nhận thấy đây là một ví dụ, nhưng sử dụng tên là một lựa chọn kém cho tính toàn vẹn tham chiếu khi bạn xem xét có bao nhiêu "John Smith". Chỉ định user_id, là một giá trị duy nhất cho mỗi người dùng, sẽ là lựa chọn tốt hơn.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Sự khác biệt giữa hai ifnull và kết hợp trong mysql là gì?

  2. mysql thay thế các ký tự có dấu

  3. Cấu trúc cơ sở dữ liệu Drupal - Hiệu quả / Không hiệu quả?

  4. Bảo vệ tiêm MySQL và các dấu hiệu lỗ hổng khi sử dụng PHP

  5. Làm cách nào để thể hiện một mối quan hệ có nhiều thông qua trong Entity Framework 5?