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

Left Outer Join không trả về tất cả các hàng từ bảng bên trái của tôi?

Câu trả lời của Nanne đưa ra giải thích lý do tại sao bạn không nhận được kết quả mong muốn (mệnh đề WHERE của bạn xóa các hàng), nhưng không giải thích cách khắc phục.

Giải pháp là thay đổi WHERE thành VÀ để điều kiện là một phần của điều kiện kết hợp, không phải là một bộ lọc được áp dụng sau khi kết hợp:

SELECT day.days, COUNT(*) as opens 
FROM day 
LEFT OUTER JOIN tracking
ON day.days = DAY(FROM_UNIXTIME(open_date)) 
AND tracking.open_id = 10 
GROUP BY day.days

Bây giờ tất cả các hàng trong bảng bên trái sẽ có trong kết quả.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL LAST_INSERT_ID () được sử dụng với nhiều bản ghi câu lệnh INSERT

  2. Tải xuống kết xuất MySQL từ dòng lệnh

  3. Cách tắt Chế độ nghiêm ngặt của MySQL

  4. CẬP NHẬT MYSQL PHP nếu Tồn tại hoặc CHÈN nếu không?

  5. Truy vấn SQL để xóa cơ sở dữ liệu trong MySQL