|
这个问题的标题不准确,但我不知道如何总结。如果可以,请随意再写一遍!- x* T) \+ c( @1 w3 x- @6 [9 l# S
这是两个表的摘录:
( E" |1 X, U; A( P F表 table_a
$ e6 T+ ]0 N$ ]+ q% ?code | year | nb_a------ -------- ------ A1 | 2017 | A2 | 2012 | 2 A3 | 2014 | 2表 table_b' Q5 e6 k, u1 p$ S9 B4 J; T
code | year | nb_b------ -------- ------ A1 | 2013 | 1 A1 | 2014 | 1 A2 | 2012 | 1为了获得此输出,我需要合并这些表:# o' j, h8 k# u. b5 {; |
code | year | nb_a | nb_b | total------ -------- ------ ------ ------- A1 | 2013 | 0 | 1 | 1 A1 | 2014 | 0 | 1 | 1 A1 | 2017 | 1 | 0 | 1 A2 | 2012 | 2 | 1 | 3 A3 | 2014 | 2 | 0 | 2我找不到正确的查询。我需要像下面这样的东西(我知道它不能完成这项工作),但如何将所有代码和年份合并到一个表中,因为代码和年份没有在两个表中重复......
3 L# k! e5 q3 O: k4 `SELECT code, "year", table_a.nb_a, table_b.nb_b, table_a.nb_a table_b.nb_b AS totalFROM table_a,table_bWHERE table_a.code = table_b.code;以下是上表快速创建 SQL 脚本:
% }+ z6 f$ H, y: v# ACREATE TABLE public.table_a (code TEXT,"year" INTEGER,nb_a INTEGER);CREATE TABLE public.table_b (code TEXT,"year" INTEGER,nb_b INTEGER);INSERT INTO public.table_a (code,"year",nb_a) VALUES (A1,2017,1),(A2,2012,2),(A3,2014,2);INSERT INTO public.table_b (code,"year",nb_b) VALUES (A1,2013,1),(A1,2014,1),(A2、2012、1); U! e0 t( w# C! f$ `7 d, J4 T1 V
解决方案: |
|