我正在尝试在仪表板上绘制获取的sql结果。目前,我有3个表格和详细信息如下: 1)客户2)订单3)出口
customers:
id | name | details | status |
101 | ABCD | #123 | Delivered |
102 | EFGH | #456 | Delivered |
orders:
id | ordered_time |order_id |
1 | 2016-10-04 11:11:05 | 101 |
2 | 2016-10-04 12:11:05 | 102 |
3 | 2016-10-04 09:11:05 | 101 |
4 | 2016-10-04 08:11:05 | 102 |
exports:
id | product | status | export_id |
1 | something1 | Delivered | 101 |
2 | something2 | Not Delivered | 101 |
3 | something3 | Not Delivered | 102 |
4 | something4 | Delivered | 102 |
查询1
SELECT distinct customers.name,customers.details,orders.order_id,ordered_time LEFT JOIN orders ON customers.id = orders.order_id WHERE orders.ordered_time = (SELECT Max(ordered_time) FROM orders WHERE customers.id = orders.order_id) OR orders.order_id is NULL order by id;
查询2
SELECT distinct exports.product,exports.status FROM exports INNER JOIN customers ON customers.id=exports.export_id;
两个查询结果分开。最重要的是,第二个查询有多个行与customers表的一个id相关联。如何格式化/获取它以获得如下所示:或者如何合并上述两个查询以获得以下结果?
final data to be plotted on dashboard:
id | name | details | products | ordered_time | cust_id | status |
1 | ABCD | #123 | something1,something2 | 2016-10-04 11:11:05 | 101 | Delivered |
2 | EFGH | #456 | something3,something4 | 2016-10-04 12:11:05 | 102 | Delivered |
Working PHP code for single query as follows:
try {
$conn = new PDO("mysql:host=$servername;dbname=$dbName", $username, $password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$query = "SELECT distinct customers.name,customers.details,orders.order_id,ordered_time LEFT JOIN orders ON customers.id = orders.order_id WHERE orders.ordered_time = (SELECT Max(ordered_time) FROM orders WHERE customers.id = orders.order_id) OR orders.order_id is NULL order by id;";
$result = $conn->prepare($query);
$result->execute();
$row_count = $result->rowCount();
$jsonarray_data = array();
if ($row_count > 0) {
while($row = $result->fetch(PDO::FETCH_ASSOC)) {
$jsonarray_data = array();
$jsonarray_data["name"] = $row["name"];
$jsonarray_data["details"] = $row["details"];
$jsonarray_data["order_id"] = $row["order_id"];
$jsonarray_data["ordered_time"] = $row["ordered_time"];
array_push($jsonarray, $jsonarray_data);
}
}
$tableData = array(
"data" => $jsonarray
);
echo json_encode($tableData,JSON_UNESCAPED_SLASHES);
}
catch(PDOException $e)
{
echo "Connection failed: " . $e->getMessage();
}
你能帮帮我吗?