postgres中的Sql:选择一个表中与其他表相关的每一行

时间:2015-09-29 02:43:13

标签: sql database postgresql

您好 postgresql

我有这个数据库:

DataBase

实际上,我有一张桌子" borda"这与表"网关"有关。这张桌子"网关"涉及表" equipamento"这个表与表" sensor"。

有关

问题是:我有" borda_id"来自Borda表。现在我希望每个sensor_id与这个" borda_id"。

相关联

我该怎么写sql?

谢谢..

1 个答案:

答案 0 :(得分:1)

Publicacao表是将Sensor表与Borda表关联的最简单方法。该图像描述了Publicacao应该与传感器和borda相关联。

您可以使用INNER JOIN捕获两个表(Publicacao和Sensor)中存在的所有行:

 SELECT Sensor.nome
    ,Sensor.descricao
    ,Sensor.modelo
    ,Sensor.precisao
    ,Sensor.valorMin
    ,Sensor.valorMax
    ,Sensor.fabricante_id
    ,Sensor.tipoSensor_id
    ,Sensor.equipamento_id
FROM Sensor
INNER JOIN Publicacao ON Sensor_id = Publicacao.sensor_id

现在您拥有与Publicacao相关联的所有传感器。

为了达到你想要的效果,我们需要过滤结果以获得"与具有borda_id的Publicacao相关联的所有传感器等于X"

SELECT Sensor.nome
    ,Sensor.descricao
    ,Sensor.modelo
    ,Sensor.precisao
    ,Sensor.valorMin
    ,Sensor.valorMax
    ,Sensor.fabricante_id
    ,Sensor.tipoSensor_id
    ,Sensor.equipamento_id
FROM Sensor
INNER JOIN Publicacao ON Sensor_id = Publicacao.sensor_id
WHERE Publicacao.borda_id = X

X是您要在Borda表中引用的borda_id