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

Mysql - perbarui t1 dengan jumlah baris t2 di mana dua kolom sama dengan untuk t1

Karena Anda menginginkan nilai nol untuk baris yang tidak cocok, ini berfungsi untuk LEFT JOIN , seperti:

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`

Kami menghitung t1.key karena untuk baris yang cocok mereka akan sama di pertama tabel (dan bukan detik) - dengan demikian, kita harus mengelompokkannya - dan bukan berdasarkan kolom di tabel kedua.

Kiat :hindari memberi nama tabel/kolom Anda dengan kata-kata yang dicadangkan mysql. Ini akan menghemat banyak waktu jika Anda tidak sengaja melupakan backtick.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara membuat dan menyisipkan objek JSON menggunakan kueri MySQL?

  2. Bagaimana parse_dates bekerja dengan pd.read_sql_query

  3. Kesulitan mendapatkan hitungan yang benar dengan bergabung

  4. php- dapatkan id sisipan terakhir

  5. Menjalankan beberapa pernyataan mysql dalam satu transaksi di alat migrasi Mybatis