Sql 如何通过外部表解析id

Sql 如何通过外部表解析id,sql,postgresql,select,Sql,Postgresql,Select,我想通过另一个表解析一个ID,该表存储该ID的名称 SELECT d.id_data, string_agg(s.name_last,', ') AS authors, d.title, i.name FROM data d, institution i, staffs s WHERE d.id_staffs = s.id_staffs AND d.id_institution = i.id_institution GROUP BY d.id_data limit 100 ; 但是

我想通过另一个表解析一个ID,该表存储该ID的名称

SELECT d.id_data, string_agg(s.name_last,', ') AS authors, d.title, i.name
FROM data d, institution i, staffs s
WHERE d.id_staffs = s.id_staffs 
    AND d.id_institution = i.id_institution 
GROUP BY d.id_data limit 100 ;
但是我怎样才能知道我所在机构的名称呢。我希望SELECT向我显示存储数据的机构名称。诸如此类

id_data | authors               | title    | name
----------------------------------------------------------------
1       |Mustermann, Musterfrau | sunmaker | university cologne
2       |Schmidt, Müller        | dry age  | university berlin

我只需要将机构的id解析为他的名字。

始终使用正确、明确、标准的
JOIN
语法。
切勿在
FROM
子句中使用逗号

大概你想要这样的东西:

SELECT d.id_data, string_agg(s.name_last,', ') AS authors,
       d.title, i.name
FROM data d JOIN
     institution i
     ON d.id_staffs = s.id_staffs JOIN
     staffs s
     ON d.id_institution = i.id_institution 
GROUP BY d.id_data, d.title, i.name 
LIMIT 100 ;
也就是说,修复
分组依据
,以获得所有未聚合的列