可以使用 JOINS 组合两个表而不丢失所有数据

Jei*_*man 2 sql postgresql join view

我有一个如下表,我想知道是否仍然可以将它们连接在一起,而不会在通过引用 JOIN 方法组合两个表时丢失两个表中的现有数据。

表格详细信息 - 查看表格

SELECT
  r.domainid,
  r.DomainStart,
  r.Domain_End,
  r.ddid,
  r.confid,
  r.pdbcode,
  r.chainid,
  d.pdbcode AS "CATH_PDBCODE",
  d.cathbegin AS "CATH_BEGIN",
  d.cathend AS "CATH_END"
FROM dyndom_domain_table r
  JOIN cath_domains d ON d.pdbcode::character(4) = r.pdbcode 
  ORDER BY confid ASC;
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,dyndom_domain_table我创建了一个 VIEW 表,以便我可以更轻松地将 JOIN 子句与具有相同 pdbcode 的其他表一起使用。

到目前为止,它只返回与 PDB 代码匹配的所有数据。我想要做的是返回所有与彼此的 PDB 代码匹配和不匹配的数据。

有我可以应用它的规则吗?还是不可能?

Ern*_*ill 5

我相信您想要一个完整的外部连接而不仅仅是一个连接(默认情况下是一个内部连接)。在 FULL OUTER JOIN 中,每个表中的每一行都对应于结果表中的某些行;一个表中与另一个表不匹配的行将使用 NULL 进行扩展以填充缺失的列。

因此,使用 FULL OUTER JOIN 而不仅仅是 JOIN,这应该可以。