[英]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.