繁体   English   中英

连接两个表,一列到 sql 中的多列

[英]join two tables, one column to multiple columns in sql

我想加入两列,比如说 t1 和 t2。

t1 中的serial_number号列等于 t2 中的 3 列。 我不想为每个查询编写不同的查询,而是想将它们写在一个查询中。

我最近的查询是:

select
   t1.date,
   t1.type,
   count(t1.serial_number) as qty,
from t1 left join t2 on t1.serial_number = t2.serial_number_x
where true
   and t1.age > 2
group by
   t1.date,
   t1.type

serial_number也等于 t2 中的serial_number_x, serial_number_y, serial_number_z 我应该如何编写查询以便在 t1 中加入 t2 的所有序列号列。

提前致谢。

看来您在 join 中发现了多个条件

select
   t1.date,
   t1.type,
   count(t1.serial_number) as qty,
from t1 left join t2 
on t1.serial_number = t2.serial_number_x
and t1.serial_number = t2.serial_number_y
and t1.serial_number = t2.serial_number_z
where 
    t1.age > 2
group by
   t1.date,
   t1.type

如果我理解正确,我认为您想取消数据透视并汇总:

select t1.date, t1.type,
       count(v.serial_number) as qty
from t1 left join
     (t2 cross join lateral
      (values (t2.serial_number_x), (t2.serial_number_y), (t2.serial_number_z)
      ) v(serial_number)
     ) 
     on t1.serial_number = t2.serial_number
where tt1.age > 2
group by t1.date, t1.type;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM