Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Mysql - zaktualizuj t1 o liczbę wierszy t2 gdzie dwie kolumny są takie same jak dla t1

Ponieważ chcesz zerowych wartości dla niedopasowanych wierszy, jest to praca dla LEFT JOIN , jak:

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`

Liczymy t1.key ponieważ pasujące wiersze będą takie same w pierwszym tabeli (a nie drugiej) - dlatego powinniśmy pogrupować według niej - a nie według pola w drugiej tabeli.

Wskazówka :unikaj nazywania tabel/kolumn zastrzeżonymi słowami mysql. Dzięki temu zaoszczędzisz mnóstwo czasu, jeśli przypadkowo zapomnisz o backtickach.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kod koloru zduplikowane wpisy w polu Excela przy użyciu naprzemiennych kolorów

  2. Jak mogę wyeksportować kilka kolumn z MySQL do pliku tekstowego?

  3. Jak załadować lokalny plik .SQL do MySQL?

  4. Jak znaleźć luki w danych szeregów czasowych w MySQL?

  5. Wybieranie rekordów w kolejności identyfikatora rodzica