1

我有两张桌子=借记和简历。我想像这样在 1 行中组合 2 个表

什么是查询?

SELECT lao, SUM(outstanding) as Outstanding, COUNT(lao) as jumlah
FROM debitur
GROUP BY lao

SELECT SUM(tgt_pergeseran) as Target
FROM resume
GROUP BY lao
4

3 回答 3

1

尝试这个-

SELECT 
A.lao,
A.Outstanding,
A.jumla,
B.Target 
FROM
(
    SELECT lao, 
    SUM(outstanding) as Outstanding, 
    COUNT(lao) as jumlah 
    FROM debitur 
    GROUP BY lao
 )A
INNER JOIN
(
    SELECT 
    lao,
    SUM(tgt_pergeseran) as Target 
    FROM resume 
    GROUP BY lao
) B
ON A.lao = B.lao
于 2019-05-19T17:00:55.650 回答
0

您可以使用基于 lao 的两个查询之间的连接,但为此您需要 lao 也是子查询选择

select 
    t1.lao, t1.Outstanding, t1.jumlah, t2.Target
from
    (select
         lao, sum(outstanding) as Outstanding, count(lao) as jumlah
     from
         debitur 
     group by
         lao)
inner join
    (select
         lao, sum(tgt_pergeseran) as Target 
     from
         resume 
     group by 
         lao) t2 on t2.lao = t1.lao 
于 2019-05-19T17:04:24.050 回答
0

MySQL 不支持full join. 所以,如果你想要两个表中的所有记录——即使有些记录丢失了——那么我推荐union all/ group by

SELECT lao, SUM(outstanding) as Outstanding,
       COUNT(outstanding) as jumlah,
       SUM(target) as target
FROM ((SELECT d.loa, d.outstanding, null as target
       FROM debitur d
      ) UNION ALL
      (SELECT r.loa, NULL, r.tgt_pergeseran as target
       FROM resume r
      ) 
     ) rd
GROUP BY lao ;
于 2019-05-19T18:05:42.920 回答