sql - 合并来自不同表的多个列

标签 sql postgresql

我需要合并不同表中的多个列。我的代码需要永远查询。这是合并多个表的正确方法吗?有没有更有效的方法来做到这一点。我使用的是 PostgreSQL 9.6.5。

SELECT 
  i.id, i.hdm_id, i.tos,
  c.itemid, c.cid, 
  pr.code,
  p.lag

  FROM Table1 i
  JOIN Table2 c ON
  i.id = c.id 

  JOIN Table3 pr ON
  c.id = pr.id

 JOIN Table4 p ON
 pr.id = p.id ;

最佳答案

我会尝试创建涵盖您的查询的索引

create index ix_table1 on table1(id, hdm_id, tos)
create index ix_table2 on table2(id, itemid)
create index ix_table3 on table3(id, code)
create index ix_table4 on table4(id, lag)

您应该认真考虑这样的查询的必要性。您真的需要所有数据吗?

关于sql - 合并来自不同表的多个列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46804009/

相关文章:

postgresql - 带参数的列 postgres 函数的默认值

php - 为什么日期之间的查询返回空

mysql - 如何从数据库表中删除记录(不包括另一个SQL中的记录)

sql - 定义外键和表关系对写查询有影响吗?

postgresql - 如何删除 Azure 中 Microsoft.DBforPostgreSQL/flexibleServers 的服务关联链接

ruby-on-rails - 角色未添加到数据库中的用户

sql - 从所有行的表字段中查找唯一字符

sql - 在 SQL 中获取最后几个查询结果

sql - 如何在sql中为每一天添加一列?

sql - 优化 GROUP BY 查询以检索每个用户的最新行