Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 用和连接ID_Php_Mysql_Inner Join - Fatal编程技术网

Php 用和连接ID

Php 用和连接ID,php,mysql,inner-join,Php,Mysql,Inner Join,我有一个表table1,其中包含id和name列。我还有一个table2表,其中包含table1_id和num列。我想做的是得到一个php数组,该数组包含一个关联数组,该数组的名称和相应num的总和。现在我正在尝试一个foreach循环来遍历table1的id并执行一个内部联接。如何执行此操作?对于查询,可以将a与子查询一起使用,该子查询按表1\u id对表2进行分组,并使用计算和。要将数据放入关联数组,请使用: $sql = "SELECT t.id, t.name, g.SumNum

我有一个表table1,其中包含id和name列。我还有一个table2表,其中包含table1_id和num列。我想做的是得到一个php数组,该数组包含一个关联数组,该数组的名称和相应num的总和。现在我正在尝试一个foreach循环来遍历table1的id并执行一个内部联接。如何执行此操作?

对于查询,可以将a与子查询一起使用,该子查询按表1\u id对表2进行分组,并使用计算和。要将数据放入关联数组,请使用:

$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);
$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);