簡體   English   中英

使用PHP將MySQL查詢存儲在另一個表中

[英]store mysql query in another table using php

這是我的MySQL表feedback

Mysql表

我想計算每列的平均值,並使用PHP文件將結果存儲到表average ,如下結構所示。

在此處輸入圖片說明

我正在使用查詢SELECT AVG (waiting) FROM feedback來計算等待列的平均值。 但是我不知道如何將查詢結果作為上述結構放置到另一個表中。

當使用查詢INSERT INTO average (average) SELECT AVG (waiting) FROM feedback **它僅更新平均列。

請幫我提供示例代碼。

謝謝

如果正確理解您可以這樣做

INSERT INTO average (data, average)
SELECT 'waiting',      AVG (waiting)      FROM feedback UNION ALL
SELECT 'consultation', AVG (consultation) FROM feedback UNION ALL
SELECT 'preoperative', AVG (preoperative) FROM feedback 

樣本輸出:

|         DATA | AVERAGE |
--------------------------
|      waiting |       3 |
| consultation |       2 |
| preoperative |       3 |

這是SQLFiddle演示


現在,如果feedback表中沒有太多數據,則可以放棄average表並以相同方式創建視圖。 因此,當您從中進行選擇時,它們會即時計算,而不是維護平均值表

CREATE VIEW average AS 
SELECT 'waiting',   ROUND(AVG (waiting)) average FROM feedback UNION ALL
SELECT 'consultation', ROUND(AVG (consultation)) FROM feedback UNION ALL
SELECT 'preoperative', ROUND(AVG (preoperative)) FROM feedback

並使用它

SELECT * FROM average

這是SQLFiddle演示

您可以從每列的平均值中獲取結果,然后將其插入到單獨的數據庫中。

現在,您正在執行的操作將其插入到同一數據庫的同一列中,而不是其他數據庫中,這就是為什么它只是更新該列而不是另一列。

INSERT查詢的示例:

$query = "INSERT INTO tableName (columnName) VALUES ($averageOfColumn)";

將“ tableName”替換為您要連接的新表的名稱。

將“ columnName”替換為您正在使用的其他數據庫中的列名。

將“ $ averageOfColumn”替換為變量,以獲取等待列的平均值。

這有幫助嗎?

要獲得這三列的平均值:

SELECT AVG(waiting),AVG(consultation),AVG(preoperative) FROM feedback;

如果列名相同,則要插入到平均值表中:

INSERT INTO average(waiting,consultation,preoperative) 
SELECT AVG(waiting),AVG(consultation),AVG(preoperative) FROM feedback

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM