从两个不同的表但相同的数据库中选择SQL查询

时间:2015-09-30 01:57:33

标签: php sql select

我想从两个不同的表中选择一个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

3 个答案:

答案 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_networkpi_dust_sensor.fkid表中的行与pi_dust_sensor表中的行连接起来。

pi_sensors_network

希望这会指出你正确的方向。如果您能回答我的问题,我将很乐意更新我的答案。

答案 2 :(得分:0)

你可以在一个对象中组合两个表的数据,然后可以使用你想要的输出结果:

SELECT * (     选择空气,温度,湿度,mq2,''作为灰尘,[时间]     来自pi_sensors_network     联合所有     选择''作为空气','作为温度,'作为湿度','作为mq2,灰尘作为灰尘,[时间]     来自pi_dust_sensor )基础 ORDER BY [TIME] DESC