我想从两个不同的表中选择一个sql查询。但是这两个表都在同一个数据库中。
这是我的sql代码,“air,temp,humidity,mq2”来自一个称为“pi_sensors_network”的表,而“Dust”来自另一个称为“pi_dust_sensor”的表。我可以知道如何从2个不同的表中选择空气,温度,湿度,mq2,灰尘但是相同的数据库吗?谢谢!
在旁注中,两个表之间没有关系。我只想从两个不同的表中获取数据。
$sql = "SELECT air, temp, humidity, mq2, Dust FROM pi_sensors_network ORDER BY time DESC LIMIT 1";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
// output data of each row
答案 0 :(得分:1)
只需为每个表使用别名:
SELECT t1.air, t1.temp, t1.humidity, t1.mq2, t1.Dust As Dust1, t2.Dust As Dust2
FROM pi_sensors_network t1,
pi_dust_sensor t2
ORDER BY time DESC LIMIT 1";
答案 1 :(得分:0)
您在架构描述和查询中留下了一些内容。您是否在其中一个表中有一个字段引用另一个表中的等效记录(即外键)?如果是这样,您可以使用JOIN。你没有提到哪个表有System.Configuration
字段。
这是我对您所需查询的准备,但对未回答的问题做出假设。我假设您有一个字段time
,它是pi_sensors_network.id
表的主键。我还假设有一个字段pi_sensors_network
将pi_dust_sensor.fkid
表中的行与pi_dust_sensor
表中的行连接起来。
pi_sensors_network
希望这会指出你正确的方向。如果您能回答我的问题,我将很乐意更新我的答案。
答案 2 :(得分:0)
你可以在一个对象中组合两个表的数据,然后可以使用你想要的输出结果:
SELECT * ( 选择空气,温度,湿度,mq2,''作为灰尘,[时间] 来自pi_sensors_network 联合所有 选择''作为空气','作为温度,'作为湿度','作为mq2,灰尘作为灰尘,[时间] 来自pi_dust_sensor )基础 ORDER BY [TIME] DESC