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

lewe sprzężenie mnożące wartości

Moje odruchowe odruchy to podzapytanie:

select count(capture_id) as count_captures, 
    (select count(id) as count_items
         from items i where i.creator_user_id = captures.user_id) as count_items 
from captures 
where user_id = 9

Nie jestem do końca pewien, co możesz zrobić, aby tego uniknąć. Widzisz oczekiwane (i ogólnie pożądane zachowanie).

Oczywiście, jeśli wiesz, że identyfikatory w obu przypadkach się nie powtórzą, możesz użyć odrębnych:

SELECT COUNT( DISTINCT capture_id) as count_captures, 
      COUNT( DISTINCT items.id) as count_items 
FROM captures 
LEFT JOIN items ON captures.user_id = items.creator_user_id 
    WHERE user_id = 9


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak obliczyć sumę bieżącą dla każdej grupy w MySQL?

  2. Witryna została zhakowana przez wstrzyknięcie SQL

  3. Korzystanie ze stref czasowych w aplikacji internetowej PHP

  4. Wartość BIGINT UNSIGNED jest poza zakresem

  5. Błąd pojawia się w sql podczas próby dodania wielu kluczy obcych