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

MySQL - Truy vấn thư chưa đọc cùng với thư

Đã nhận email lần cuối và số lượng email chưa đọc (đã nhận).

  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 

Số email đã gửi và số lượng tin nhắn đã gửi chưa đọc:

  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 

Đã chỉnh sửa:- Đã thêm If count =null thành 0 và thêm phép nối bên trái để đảm bảo kết quả hiển thị.

chỉnh sửa 2:Đã thay đổi truy vấn con để chỉ đếm số chưa đọc được gửi đến người dùng này.

Chỉnh sửa 3:Đã cập nhật truy vấn đầu tiên và thêm truy vấn thứ hai tùy thuộc vào kết quả được yêu cầu. Cái này cần phải dùng mẹo. Bạn có thể muốn cái đầu tiê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. Tương tác 2 bảng:chèn, lấy kết quả, chèn

  2. Trong một phép nối, cách thêm tiền tố tất cả các tên cột với bảng mà nó đến từ

  3. Tạo một liên kết tượng trưng cho thư viện libmysqlclient.18.dylib

  4. Triển khai hàm băm MySQL

  5. Tại sao sử dụng DB ::raw bên trong DB ::select trong Laravel?