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

Fungsi MySQL COUNT tidak berfungsi seperti yang saya inginkan dalam beberapa kueri yang digabungkan

SELECT comments.comment_id, comments.descr, comments.created, usrs.usr_name, 
  (SELECT COUNT(*) FROM comment_likers WHERE comment_id=comments.comment_id AND liker=1)likes,
  (SELECT COUNT(*) FROM comment_likers WHERE comment_id=comments.comment_id AND liker=0)dislikes
  liker
FROM comments
INNER JOIN usrs ON ( comments.usr_id = usrs.usr_id )
LEFT JOIN comment_likers  ON ( comments.comment_id = comment_likers.comment_id 
 AND comment_likers.usr_id = $usrID )
WHERE comments.topic_id=$tpcID
ORDER BY comments.created DESC;

Beberapa catatan. Saya tidak terlalu yakin apa yang harus dicapai oleh join kiri kedua di comment_likers (yang menggunakan $usrID). Apakah Anda hanya tertarik pada suka dari topik tertentu dari pengguna tertentu?

Juga, Anda mungkin berpikir untuk mengubah skema untuk komentar created menjadi datetime, bukan varchar.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara Menampilkan Proses MySQL

  2. Tes validitas koneksi MySQL dalam sumber data:SELECT 1 atau yang lebih baik?

  3. hitung hari Sabtu sebelum tanggal 15 sebagai hari kerja dan lewati yang lain

  4. Menggunakan Pentaho Kettle, bagaimana cara memuat beberapa tabel dari satu tabel sambil menjaga integritas referensial?

  5. Bagaimana saya bisa menemukan karakter non-ASCII di MySQL?