объединить 2 таблицы в 1 строку с помощью объединения и группировки по - PullRequest
1 голос
/ 19 мая 2019

у меня есть две таблицы = дебитур и резюме. Я хочу объединить 2 таблицы в 1 строку, как это

Что такое запрос?

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

Ответы [ 3 ]

1 голос
/ 19 мая 2019

Попробуйте это-

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
0 голосов
/ 19 мая 2019

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 ;
0 голосов
/ 19 мая 2019

Вы можете использовать объединение между двумя запросами на основе 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 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...