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

Hai bảng, tùy theo mối quan hệ từ một đến nhiều. Làm thế nào để nối các giá trị mà không có các hàng trùng lặp?

Thật không may, bạn không thể làm điều này hoàn toàn trong MySQL. Trong tập kết quả, bạn không thể có các hàng với (số) cột khác nhau. Bạn cần thực hiện một số logic ứng dụng. Cách gần nhất mà bạn có thể đạt được là:

select m.id, GROUP_CONCAT(voto SEPARATOR ',') 
from messages m 
left join votations v on v.messageID = m.id
group by m.id;

Thao tác này sẽ trả về định dạng sau:

ID  GROUP_CONCAT(VOTO SEPARATOR ',')
1   2,5,6
2   2,12,3

Bạn có thể thấy điều này đang hoạt động tại đây: http://sqlfiddle.com/#!2/241a8/ 3




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tôi có thể dự đoán chỉ mục Zend Framework của mình sẽ lớn như thế nào không? (và một số câu hỏi nhanh:s)

  2. 'Quyền truy cập bị từ chối đối với người dùng' root '@' localhost '(sử dụng mật khẩu:NO)'

  3. Làm cách nào để tạo URL động trong php?

  4. Làm thế nào để chuyển đổi thời gian tính bằng giây sang định dạng HH:MM:SS trong MySQL?

  5. Làm cách nào để tôi có thể thay đổi varchar đã lập chỉ mục (255) từ utf8 thành utf8mb4 mà vẫn duy trì độ dài khóa tối đa là 767?