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

MySQL - Meminta pesan yang belum dibaca bersama dengan pesan email

Email terakhir diterima dan jumlah yang belum dibaca (diterima).

  SELECT e.MAIL_NO, e.BIZ_ID, e.FROM_ADD, e.TO_ADD, e.EMAIL_SUBJECT,  
  DATE_FORMAT(e.UPDATED_DATE,'%d %b %y, %I:%i %p') AS DATE, e.MAIL_STATUS, 
  CONCAT(ufrom.USER_FIRST_NAME,' ',ufrom.USER_LAST_NAME) AS U_NAME,if(UNREAD_MESSAGE_COUNT is null,0,UNREAD_MESSAGE_COUNT) FROM EMAIL e  
LEFT JOIN USER_CONFIG ufrom
 ON ufrom.USER_ID = e.TO_ADD
left join (SELECT COUNT(*) AS UNREAD_MESSAGE_COUNT,TO_ADD FROM EMAIL_MESSAGE         inner join EMAIL using (BIZ_ID)
WHERE MESSAGE_STATUS = 'U' group by TO_ADD) t on t.TO_ADD= e.TO_ADD
WHERE 
 e.TO_ADD=:TO_ADD
ORDER BY MAX(e.UPDATED_DATE) DESC, ufrom.USER_FIRST_NAME DESC 
LIMIT 0, 10 

Email terkirim dan jumlah pesan terkirim yang belum dibaca:

  SELECT e.MAIL_NO, e.BIZ_ID, e.FROM_ADD, e.TO_ADD, e.EMAIL_SUBJECT,  
  DATE_FORMAT(e.UPDATED_DATE,'%d %b %y, %I:%i %p') AS DATE, e.MAIL_STATUS, 
  CONCAT(ufrom.USER_FIRST_NAME,' ',ufrom.USER_LAST_NAME) AS U_NAME,if(UNREAD_MESSAGE_COUNT is null,0,UNREAD_MESSAGE_COUNT) FROM EMAIL e  
LEFT JOIN USER_CONFIG ufrom
 ON ufrom.USER_ID = e.FROM_ADD 
left join (SELECT COUNT(*) AS UNREAD_MESSAGE_COUNT,FROM_ADD FROM EMAIL_MESSAGE         inner join EMAIL using (BIZ_ID)
WHERE MESSAGE_STATUS = 'U' group by FROM_ADD) t on t.FROM_ADD= e.FROM_ADD
WHERE 
 e.FROM_ADD=:FROM_ADD
ORDER BY MAX(e.UPDATED_DATE) DESC, ufrom.USER_FIRST_NAME DESC 
LIMIT 0, 10 

Diedit:- Ditambahkan If count=null menjadi 0, dan ditambahkan left join untuk memastikan hasil yang ditampilkan.

edit 2:Mengubah subkueri menjadi hanya menghitung belum dibaca yang dikirim ke pengguna ini.

Sunting 3:Permintaan pertama yang diperbarui dan Permintaan kedua yang ditambahkan tergantung pada hasil yang diperlukan. Ini harus melakukan trik. Anda mungkin menginginkan yang pertama.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. INSERT..RETURNING tidak berfungsi di JOOQ

  2. Aktifkan Dukungan Mesin Penyimpanan MySQL InnoDB di Instalasi XAMPP

  3. Permintaan MySql ANTARA dua String terkadang tidak berfungsi

  4. MYSQL Insert Dimana Tidak Ada dengan PDO

  5. Bagaimana cara hanya memilih data numerik dari mysql?