SQL内连接两个表,右边有2个匹配

时间:2016-02-10 06:43:34

标签: sql postgresql join

我有两个这样的表: enter image description here

我想从日志详细信息中选择InOut值,其中id=1位于日志表中。 我为In值尝试了这个:

SELECT Log.Time, LogDetail.Value
FROM Log where ID=1
INNER JOIN LogDetail
ON Log.ID=LogDetail.ID where Name="In";

这是真正的查询吗?

1 个答案:

答案 0 :(得分:1)

如果您尝试运行此查询 - 您将看到它无法执行。原因是它包含两个where语句。

查询在大多数DBMS中只能包含一个where语句(而此语句可以包含由逻辑运算符连接在一起的多个条件)。

此外,最好使用表别名 - 这使查询更具可读性并防止可能的歧义。

所以你的查询应该是这样的:

select L.Time, LD.Value
from Log as L
    inner join LogDetail as LD on L.ID=LD.ID 
where L.ID=1 and LD.Name="In"