Mysql
 sql >> база данни >  >> RDS >> Mysql

MySQL Left Join Subselect

Може да има по-добър начин да направите това и не съм го тествал в MySQL, но следното работи в SQL Server 2005:

Select a.language, b.template, count (c.template) as combo_count
from
(select distinct language from tablename) as a
inner join (select distinct template from tablename) as b on 1 < 2 /* this could be cross join, same thing. */
left outer join tablename c on c.language = a.language and c.template = b.template
group by a.language, b.template
order by 1, 2

Ето резултатите с вашите примерни данни:

au  t1  0
au  t2  1
au  t3  0
en  t1  3
en  t2  0
en  t3  0
ge  t1  0
ge  t2  1
ge  t3  2


  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 / MariaDB:как да намерим пропуски в базирани на време данни?

  2. Проектиране на база данни - Push модел или разклоняване при запис

  3. Защита от инжектиране на MySQL и знаци за уязвимост с помощта на PHP

  4. Има ли начин да използвам ON DUPLICATE KEY за актуализиране на всичко, което исках да вмъкна?

  5. SQLSTATE[HY000]:Обща грешка:1835 Неправилен комуникационен пакет на LARAVEL