具有多个条件的多个表

时间:2016-08-22 22:38:33

标签: php mysql

已更新 我在MySql中有3个表(多个表)

1)  wp_pressure -- Id, presion, idObject, Insertado
2)  wp_altitude -- Id, altitud, idObject, Insertado
3)  wp_temperatura -- Id, temperatura, idObject, Insertado

我需要为那些具有特定" idObject""不需要Id"的行获取每个表的所有这三个参数。每个特定的那些具有特定的" idObject"输出中且不重复寄存器。这是因为在代码中,后来我必须提供由3个表的响应形成的unqique JSon文件。 目前我正在制作三个不同且分开的回复,因为我使用3个URIS到三个不同的php文件,一个用于温度,一个用于压力,另一个用于高度,但是来自loopj ansytask Api in Andorid我只能做一个请求,所以我需要从一个Json中的三个表加入respose,所以我正在创建一个唯一的PHP文件来从一个respose中的三个表获取所有数据,然后只使用一个URI只发送到一个php文件。

1)表温度的Json:

{"result_temperatura":{"temperature":{"min":[{"Id":"3","temperatura":"0","Insertado":"2016-08-16 18:13:55"}],"max":[{"Id":"4","temperatura":"50","Insertado":"2016-08-16 18:17:33"}],"avg":[{"tempmedia":23}]},"last_entry":{"Id":"4","temperatura":"50","Insertado":"2016-08-16 18:17:33"}}}

2)表压力下的Json

{"result_altitud":{"altitude":{"min":[{"Id":"2","altitud":"10","Insertado":"2016-08-16 18:40:59"}],"max":[{"Id":"4","altitud":"51","Insertado":"2016-08-16 19:12:15"}],"avg":[{"altmedia":20}]},"last_entry":{"Id":"4","altitud":"51","Insertado":"2016-08-16 19:12:15"}}

3)

{"result_altitud":{"altitude":{"min":[{"Id":"2","altitud":"10","Insertado":"2016-08-16 18:40:59"}],"max":[{"Id":"4","altitud":"51","Insertado":"2016-08-16 19:12:15"}],"avg":[{"altmedia":20}]},"last_entry":{"Id":"4","altitud":"51","Insertado":"2016-08-16 19:12:15"}}}

他在我的php中的第一步是对表进行查询:

在我的php中,我这是从APP Android获取IdObject:

if(isset($_POST['idObjeto']) && !empty($_POST['idObjeto'])){
$idObjeto = $_POST['idObjeto'];

然后我这样做是为了构建查询" sql",但它不起作用。它给了我重复的参数,就像我在JPG附件(mixtable)中所示。如果我接受这个回复并使用它,我将得到不可用的数据,因为有了这个回复,我必须计算每个参数的平均值,最后一个条目,最大值和最小值,"温度,压力和海拔高度。

mixedtable

$sql = SELECT wp_temperatura.temperatura, wp_temperatura.Insertado, wp_pressure.presion,
wp_pressure.Insertado, wp_altitude.altitud, wp_altitude.Insertado  FROM 
wp_temperatura, wp_pressure, wp_altitude WHERE wp_temperatura.idObjeto =
wp_pressure.idObjeto & wp_temperatura.idObjeto = wp_altitude.idObjeto &
wp_temperatura.idObjeto='$idObjeto';

将表格分开,以供参考 enter image description here

1 个答案:

答案 0 :(得分:0)

根据您更新的问题,仔细查看您选择的字段,它可能会解释您图片中的重复:

SELECT wp_temperatura.temperatura, wp_temperatura.Insertado, wp_pressure.presion,

wp_pressure.Insertado,wp_altitude.altitud,wp_altitude.Insertado

注意重复各种表格' Insertado字段。如果您确实需要响应中的所有时间戳,则可以重命名字段,以便PHP在获取结果时不会折叠重复项:

SELECT wp_temperatura.temperatura,
    wp_temperatura.Insertado AS temperatura_insertado,
    wp_pressure.presion,
    wp_pressure.Insertado AS pressure_insertado,
    wp_altitude.altitud,
    wp_altitude.Insertado AS altitude_insertado