[英]How to display data from different tables when they have the same hour (datetime) using Google Charts and MySQL?
當小時內發生匹配時,我試圖顯示來自不同表的多維數據。 因此,例如,表1中的value1和表2中的value2應該以Y顯示,小時應以X顯示。我正在使用Google Charts和MySQL。 當我從單個表中選擇內容時,代碼將起作用,但是當我嘗試混合結果時,它將出現以下錯誤:“軸#0的數據列不能為字符串類型”
我嘗試使用WHERE並嘗試使用JOIN將table1的Datetime列與table2鏈接起來,但是沒有成功。 我知道我可能仍然需要格式化Datetime來僅選擇小時,但是我感覺完全卡住了。
這是表1中的內容:
在表2中:
我正在尋找這樣的東西:
下面是代碼:
var data = google.visualization.arrayToDataTable([
['Datetime','Value1', 'Value2'],
<?php
$query = "SELECT table1.Datetime, table1.Value1, table2.Value2 ".
"FROM table1 ".
"WHERE table1.Datetime = table2.Datetime ".
"ORDER BY table1.Datetime ASC ".
"LIMIT 24";
$exec = mysqli_query($con,$query);
while($row = mysqli_fetch_array($exec)){
echo "[
'".$row['Datetime']."',
".$row['Value1']." ,
".$row['Value2']."
],";
}
?>
]);
注意:我將圖表限制為24行,因為當插入新數據時(每小時),僅顯示最后24小時的數據。
我正在回答自己的問題,但這要歸功於WhiteHat在評論中提供的反饋。
第一個問題:我沒有在FROM子句中包含第二個表。
第二個問題:由於重復了Datetime值,因此我的數據示例效果不佳。
第三個問題:通過在代碼中添加HOUR函數來解決表之間的小時匹配問題。 見下文:
var data = google.visualization.arrayToDataTable([
['Hour1','Value1', 'Value2'],
<?php
$query = "SELECT HOUR(table1.Datetime) AS Hour1, table1.Value1, table2.Value2 ".
"FROM table1, table2 ".
"WHERE HOUR(table1.Datetime) = HOUR(table2.Datetime) ".
"ORDER BY table1.Datetime ASC ".
"LIMIT 24";
$exec = mysqli_query($con,$query);
while($row = mysqli_fetch_array($exec)){
echo "[
'".$row['Hour1']."',
".$row['Value1']." ,
".$row['Value2']."
],";
}
?>
]);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.