我有两张桌子=借记和简历。我想像这样在 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
尝试这个-
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
您可以使用基于 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
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 ;