SQL 连接 postgresql 上的许多表

标签 sql postgresql join

我有一个表结构如下:

measurements:

id | Value | sensor_id

现在我有另一个名为传感器的表

sensors:
id | Name | provider_id

然后我有另一个名为 Providers 的表:

providers:
id | Name

现在我要做的是从测量表中选择 sensor_ID 具有特定类型(由 ID 指定)的所有记录。

所以我做了类似的事情:

select * from measurements, sensors, providers 
JOIN sensors on sensors.id = measurements.sensor_id 
JOIN providers on providers.id  = sensor.provider_id 
where provider.id = 1 LIMIT 100

但是,这会返回表“sensor_measurements”有一个条目,但不能从查询的这一部分引用它。我已经尝试过其他类型的变体,但不能让它工作。

我正在使用 Postgresql 并使用 PgAdmin 工具。

最佳答案

永远不要FROM 子句中使用逗号。所以:

select *  -- you should list out the columns you want
from measurements m join
     sensors s
     on s.id = m.sensor_id join
     providers p
     on p.id  = s.provider_id 
where p.id = 1
limit 100

关于SQL 连接 postgresql 上的许多表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53411682/

相关文章:

java - 当 select 不返回任何行时,MyBatis 的特殊结果

mysql - 连接与子查询

mysql - 在加入主表之前对子查询中的多对一元素求和

mysql - 查找平均分最高的学生

mysql - SQL make 2 更新查询 1

java - Hibernate多实体连接问题,产生额外查询

django - 我应该为标签使用 ArrayField 还是 ManyToManyField

sql - CREATE VIEW 必须是批处理中唯一的语句

postgresql - Postgres 复制槽检查延迟

mysql - 我如何子查询两个连接?