将 ids 与和连接起来

发布于 2024-10-18 09:37:39 字数 165 浏览 1 评论 0原文

我有一个表 table1,其中包含 id 和 name 列。我还有一个表 table2,其中包含 table1_id 和 num 列。我想要做的是获取一个 php 数组,其中包含一个带有名称和相应数字总和的关联数组。现在我正在尝试使用 foreach 循环来循环 table1 的 id 并执行内部联接。我该怎么做?

I have a table table1 with columns id and name. I also have a table table2 with columns table1_id and num. What I'm looking to do is get a php array that holds an associative array with name and the sum of the corresponding num. Right now I'm trying a foreach loop to cycle through table1's ids and perform an inner join. How do I do this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

缺⑴份安定 2024-10-25 09:37:40

对于查询,您可以使用 JOIN< /a> 带有按 table1_id 对 table2 进行分组的子查询,并使用 分组依据。要将数据放入关联数组中,请使用 mysql_fetch_assoc< /代码>

$sql = "SELECT t.id, t.name, g.SumNum
    FROM table1 t
      LEFT JOIN (
        SELECT table1_id, SUM(num) SumNum
        FROM table2
        GROUP BY table1_id 
      ) g ON t.id = g.table1_id";

$result = mysql_query($sql);

while ($row = mysql_fetch_assoc($result)) {
    echo $row["id"];
    echo $row["name"];
    echo $row["SumNum"];
}

mysql_free_result($result);

For the query, you can use a JOIN with a subquery that groups table2 by table1_id, and calculates the sum using GROUP BY. To get the data into a associative array, use mysql_fetch_assoc:

$sql = "SELECT t.id, t.name, g.SumNum
    FROM table1 t
      LEFT JOIN (
        SELECT table1_id, SUM(num) SumNum
        FROM table2
        GROUP BY table1_id 
      ) g ON t.id = g.table1_id";

$result = mysql_query($sql);

while ($row = mysql_fetch_assoc($result)) {
    echo $row["id"];
    echo $row["name"];
    echo $row["SumNum"];
}

mysql_free_result($result);
我很坚强 2024-10-25 09:37:40
$query = "
    SELECT 
      table1.name, 
      SUM(table2.num) AS `sum`
    FROM
      table1
    LEFT OUTER JOIN
      table2
    ON
      table1.id = table2.table1_id
    GROUP BY 
      table1.id
";

$result = mysql_query($query);
while ($row = mysql_fetch_assoc($result)) {
  $array[] = $row;
}

print_r($array);
$query = "
    SELECT 
      table1.name, 
      SUM(table2.num) AS `sum`
    FROM
      table1
    LEFT OUTER JOIN
      table2
    ON
      table1.id = table2.table1_id
    GROUP BY 
      table1.id
";

$result = mysql_query($query);
while ($row = mysql_fetch_assoc($result)) {
  $array[] = $row;
}

print_r($array);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文