【问题标题】:Join 3 rows of 2 tables and COUNT加入 3 行 2 个表和 COUNT
【发布时间】:2018-09-04 00:48:54
【问题描述】:

我想做一个“两个表的连接”。像这样的:

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

谢谢。

【问题讨论】:

  • Pedro 和 Tercero 不一样?

标签: mysql join count left-join


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2021-04-03
    • 2011-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-16
    • 1970-01-01
    • 1970-01-01
    • 2013-10-17
    相关资源
    最近更新 更多