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

Umpan aktivitas pengguna (ala facebook). Bagaimana cara mengelompokkan kegiatan serupa?

Anda mungkin akan mengelompokkan pada id item dari item yang sedang dimodifikasi - yang dalam hal ini terlihat seperti:ua.imdbID.

Setelah Anda melakukannya, Anda akan kehilangan baris data lainnya, jadi Anda akan menggunakan GROUP_CONCAT untuk mendapatkan semua ID terkait.

GROUP_CONCAT(sa.activityID);

Jadi hasil akhir Anda adalah:

SELECT ua.datetime, ua.imdbID, ua.personID, GROUP_CONCAT(sa.activityID), sa.activity, m.title, m.year, p.name, umv.vote, upv.vote, r.review, t.youTubeID, ps.filename, ph.filename
FROM user_activity ua
JOIN sys_activities sa ON ua.activityID = sa.activityID
LEFT OUTER JOIN movies m ON ua.imdbID = m.imdbID
LEFT OUTER JOIN persons p ON ua.personID = p.personID
LEFT OUTER JOIN user_movies_vote umv ON umv.userID = ua.userID AND umv.imdbID = ua.imdbID
LEFT OUTER JOIN user_persons_vote upv ON upv.userID = ua.userID AND upv.personID = ua.personID
LEFT OUTER JOIN reviews r ON r.userID = ua.userID AND r.imdbID = ua.imdbID
LEFT OUTER JOIN (
        select imdbID, userID, youTubeID, max(hd) as MaxTrailerStatus
        from trailers
        group by imdbID
        ) t ON ua.imdbID = t.imdbID AND ua.userID = t.userID
LEFT OUTER JOIN (
        select imdbID, filename, max(main) as MaxPosterStatus
        from posters
        group by imdbID
        ) ps ON ua.imdbID = ps.imdbID
LEFT OUTER JOIN (
        select personID, filename, max(main) as MaxPhotosStatus
        from photos
        group by personID
        ) ph ON ua.personID = ph.personID
WHERE ua.userID = ?  GROUP BY ua.imdbID


ORDER BY ua.datetime DESC



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Haruskah kunci utama basis data berupa bilangan bulat?

  2. JSON_EXTRACT() – Mengembalikan Data dari Dokumen JSON di MySQL

  3. Cara Mengatur Replikasi Asinkron dari Galera Cluster ke server MySQL Standalone dengan GTID

  4. Cara Menambahkan Angka Nol Awal ke Angka di MySQL

  5. php password_verify() hash dan pass tidak akan cocok