【发布时间】:2021-05-24 09:07:19
【问题描述】:
我有 3 个不同的表名,分别是 state、config 和 user
state: columns
--------------
taskid
class
state
queue time
running time
config: columns
---------------
class
confname
user: columns
-------------
username
userid
我可以使用 class 列加入 state 和 config 表,但在我的结果集中,我也想添加用户名,但没有匹配的列要加入。但是我可以通过包含另一个与state 表有关系的表tasks 来做到这一点。
tasks: columns
--------------
taskid,
userid,
taskname
使用此表,我想生成如下所示的输出列。
username - from users table
confname - from config table
state, queue time, running time - from the state table
我尝试了以下查询,但结果为零。有人可以帮助我更好的逻辑吗?
select
p.username,
c.confname,
s.state,
s.queue_time/1000000 ||' sec' as queue_time,
s.exec_time/1000000 ||' sec' as execution_time
from
state as s join
config c on s.class=c.class
join ((select distinct(userid)as user from taks q join state s on q.taskid=s.taskid) j
join
user p on j.user=p.username)
【问题讨论】:
-
创建db-fiddle 将鼓励每个人回答。这将有助于尝试 SQL。
-
如果您在加载数据后创建多对多表...无法使用查询(或查询)来填充它
标签: sql postgresql join