【问题标题】:PDO Query : Count related and repeated values then inner joinPDO 查询:计算相关和重复的值,然后进行内部连接
【发布时间】:2017-10-03 04:38:01
【问题描述】:

我使用 PHP 和 PDO。 所以我有2张桌子,

表 1

| id | name | age |
| 1  | John |  25 |
| 2  | Tom  |  32 |
| 3  | James|  45 |

表2

| id |  Comment  | Link |
| 1  | some text |  3   |
| 2  | some text |  3   |
| 3  | some text |  1   |

所以,链接列号代表表 1 中的 id。例如,表 2 中的 Link = 3s 代表表 1 中的 James。我需要一个查询,它包含 table1 的所有数据以及来自 table2 的相关 Link 列的一些重复值。

例如,查询应该给我(让我们选择詹姆斯),

| id | name  | age | Value |
| 3  | James | 45  |   2   |

value=2,因为链接栏里有两个3和詹姆斯有关

我尝试了一些东西,但出现了很多错误。

【问题讨论】:

    标签: php sql


    【解决方案1】:

    我认为你只需要GROUP BY

    SELECT a.id,
           a.name,
           a.age,
           count(*) as value
    FROM table1 a
    JOIN table2 b ON a.id = b.link
    GROUP BY a.id, a.name, a.age
    

    如果您真的只想要一行,请添加WHERE

    SELECT a.id,
           a.name,
           a.age,
           count(*) as value
    FROM table1 a
    JOIN table2 b ON a.id = b.link
    WHERE a.name = 'James'
    GROUP BY a.id, a.name, a.age
    

    或使用子查询

    SELECT a.id,
           a.name,
           a.age,
           (SELECT count(*) FROM table2 b WHERE a.id = b.link) as value
    FROM table1 a
    WHERE a.name = 'James'
    

    【讨论】:

      猜你喜欢
      • 2021-09-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-17
      • 2017-06-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多