加入3行2个表和COUNT

时间:2018-03-25 23:06:39

标签: mysql join count left-join

我希望与两个表的连接加入<#34; 连接&#34;。像这样:

SELECT users.nombre, users.apellido,users.id, COUNT(pepe.primero) AS Primero, 
   COUNT(pep.segundo) AS Segundo, 
   COUNT(pe.tercero) AS Tercero

FROM users 
LEFT JOIN ligauruguaya_v AS pepe ON users.id = pepe.primero
LEFT JOIN ligauruguaya_v AS pep ON users.id = pep.segundo
LEFT JOIN ligauruguaya_v as pe ON users.id = pe.tercero

WHERE users.categoria < 3 
GROUP BY users.id

此示例使列显示为多列结果。

将表与3列相同的表连接起来是不一样的 你能救我吗?

表用户

id | nombre |apellido
------------------
1|  Julio   |Dutra
2|  Nelson  |infante
3|  Pedro   |Polo
4|  Daniel  |Muñoz

表ligauruguaya_v

id| primero|segundo|tercero
 1| 1      |2      |3
 1| 1      |3      |2
 1| 1      |4      |2

结果

 nombre   |Apellido | Primero | Segudno | Tercero
 Julio    |Dutra    | 3       | 0       | 0
 Nelson   |infante  | 0       | 1       | 2
 Pedro    |Polo     | 0       | 1       | 0
 Daniel   |Muñoz    | 0       | 1       | 0

感谢。

1 个答案:

答案 0 :(得分:0)

这是获得相同结果的另一种方式:

SELECT u.nombre, u.apellido,u.id, 
    (select count(1) from ligauruguaya_v  where primero=u.id) AS Primero,
    (select count(1) from ligauruguaya_v  where segundo=u.id) AS Segundo,
    (select count(1) from ligauruguaya_v  where Tercero=u.id) AS Tercero
FROM users u 

Result:
nombre  apellido    id  Primero Segundo Tercero
Julio   Dutra       1   3       0       0
Nelson  Infante     2   0       1       2
Pedro   Polo        3   0       1       1
Daniel  Muñoz       4   0       1       0