Mysql 添加子查询时遇到问题
这是交易 我有两个表,按阶段编号列出小时费率和单价。在一个表上,它可能有阶段2,3,14和81,在另一个表上,2,14,20,83,我需要将表1 sum()添加到表2 sums中,但是如果你看下面的结果,你会看到,尽管我调用了coalese,它仍然会生成NULL,你无法应用数学。希望你能明白我的意思Mysql 添加子查询时遇到问题,mysql,Mysql,这是交易 我有两个表,按阶段编号列出小时费率和单价。在一个表上,它可能有阶段2,3,14和81,在另一个表上,2,14,20,83,我需要将表1 sum()添加到表2 sums中,但是如果你看下面的结果,你会看到,尽管我调用了coalese,它仍然会生成NULL,你无法应用数学。希望你能明白我的意思 SELECT ru.phase_no, ROUND(SUM(ru.units * ru.rate) * 0.75, 2) , (SELECT
SELECT ru.phase_no,
ROUND(SUM(ru.units * ru.rate) * 0.75, 2) , (SELECT
ROUND(SUM(rh.hours * rhh.rate) * 0.75, 2)
FROM
rates_hourly_required rh
JOIN
rates_hourly rhh ON rhh.id = rh.rates_hourly_id
WHERE
rh.project_id = ru.project_id and rh.phase_no =ru.phase_no group by rh.phase_no,rh.project_id)
FROM
rates_unit_required ru
WHERE
ru.project_id = 67320
group by ru.project_id, ru.phase_no
也许有更好的方法来处理这个查询 使用
左连接
而不是相关子查询
SELECT ru.phase_no,
ROUND(SUM(ru.units * ru.rate) * 0.75, 2) AS ru_total,
IFNULL(rh_total, 0) AS rh_total
FROM rates_unit_required AS ru
LEFT JOIN (
SELECT rh.phase_no, ROUND(SUM(rh.hours * rhh.rate) * 0.75, 2) AS rh_total
FROM rates_hourly_required rh
JOIN rates_hourly rhh ON rhh.id = rh.rates_hourly_id
WHERE rh.project_id = 67320
GROUP BY rh.phase_no
) AS rh ON rh.project_id = ru.project_id AND rh.phase_no = ru.phase_no
WHERE ru.project_id = 67320
GROUP BY ru.phase_no
在
WHERE
子句中选择特定值时,按project\u id
分组也没有意义。在何处使用COALESCE()
?请参阅