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

Mysql - cập nhật t1 với số hàng t2 trong đó hai cột giống như đối với t1

Vì bạn không muốn có giá trị bằng không cho các hàng không khớp của mình, đó là công việc cho LEFT JOIN , như:

SELECT 
  t1.*, 
  IF(t2.`key` IS NULL, 0, COUNT(t1.`key`)) AS t2_row_count 
FROM 
  t1 
    LEFT JOIN t2 
      ON t1.id=t2.id 
      AND 
      t1.category=t2.category 
GROUP BY 
  t1.`key`

Chúng tôi đang đếm t1.key bởi vì đối với các hàng đã khớp, chúng sẽ giống nhau ở đầu tiên bảng (chứ không phải bảng thứ hai) - do đó, chúng ta nên nhóm theo nó - chứ không phải theo trường trong bảng thứ hai.

Mẹo :tránh đặt tên bảng / cột của bạn bằng các từ dành riêng cho mysql. Điều này sẽ giúp bạn tiết kiệm rất nhiều thời gian nếu bạn vô tình quên dấu gạch ngược.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Đoạn mã sau trả về lỗi 500 vì mã không được dùng nữa trong php phiên bản 7, Làm thế nào để làm cho nó hoạt động trong php verison 7?

  2. Tải lên hình ảnh từ iOS bằng ASIHTTPRequest

  3. Nhận các ký tự lạ khi tìm nạp giá trị trong cơ sở dữ liệu mysql

  4. Django ORM có thể thực hiện ORDER BY trên một giá trị cụ thể của một cột không?

  5. MySQL chọn bản ghi X hàng đầu cho từng cá nhân trong bảng