PHP MYSQL - 从另一个变量组合查询

时间:2017-03-03 03:53:56

标签: php mysql

我是否可以知道我是否可以组合来自不同变量的查询,或者是否有其他方式。我想将$query_1插入$query_2

示例:

$sql = "SELECT l_id from mlk";
$result = mysqli_query($conn, $sql);
$count = mysqli_num_rows($result); 

if (mysqli_num_rows($result) > 0) {
    while($row = mysqli_fetch_assoc($result)) {
        $l_id[] = $row["l_id"];
     }
}

mysqli_free_result($result);

foreach($l_id as $row){
    $query_1= "(select count(*) from staff s where s.l_id = $row) as mlk_$row,";
}

$query_2= "SELECT mlk.lokasi,
//insert $query_1 here  
from mlk INNER JOIN staff WHERE staff.l_id=mlk.l_id GROUP BY mlk.lokasi";
$result = mysqli_query($conn, $sql);
  1. mlk是一个存储员工工作地点的表格
  2. $query_2将显示位置名称,我还想显示该特定位置的员工总数。例如,Kuala Lumpur, 10

2 个答案:

答案 0 :(得分:2)

只需在第二个查询中包含计数:

SELECT mlk.lokasi, count(*) as no_of_staff 
from mlk
INNER JOIN staff on staff.l_id=mlk.l_id
GROUP BY mlk.lokasi

我还通过将连接条件从where子句移动到on子句,将隐式连接更改为显式连接。

答案 1 :(得分:0)

使用左连接显示所有位置,然后显示每个位置的工作人员数。

SELECT mlk.lokasi,count(*)as no_of_staff 来自mlk LEFT JOIN staff on staff.l_id = mlk.l_id GROUP BY mlk.lokasi由mlk.lokasi ASC命令