我所拥有的是两张桌子;
heli_acft
:
- acft_id
- acft_reg
- acft_hours
heli_flt
:
- flt_id
- flt_acft
- flt_colhr
acft_id
与flt_acft
相关联。
我希望得到表格中每个flt_colhr
的所有flt_acft
的总和,然后将该数字添加到acft_hours
每acft_id
的值。< / p>
然后,结果将在表格中显示为<?php echo data[???] ?>
。
关于如何做到这一点的任何想法?
答案 0 :(得分:1)
加入表并计算总和。我使用LEFT JOIN
来获得没有飞行的飞机的零结果。
SELECT acft_id, acft_hours + IFNULL(SUM(flt_colhr), 0) AS total_colhr
FROM heli_acft
LEFT JOIN heli_flt ON acft_id = flt_acft
GROUP BY acft_id
答案 1 :(得分:0)
假设acft_id
是flt_acft
表中的唯一标识符...
这是一种返回指定结果集的方法,添加&#34;小时&#34; (从heli_flt
到&#34;小时&#34;从heli_acft
:
SELECT a.acft_id
, a.acft_hours
, IFNULL(f.flt_hours,0)
, a.acft_hours + IFNULL(f.flt_hours,0) AS total_hours
FROM heli_acft a
LEFT
JOIN ( SELECT SUM(h.flt_colhr) AS flt_hours
, h.flt_acft
FROM heli_flt h
GROUP BY h.flt_acft
) f
ON f.flt_acft = a.acft_id
内联视图计算f
计算每个heli_flt
flt_acft
小时的总和。加入heli_acft
以获取acft_hours
,我们只需添加两列的值即可。我们使用&#34;外部&#34;加入,以便我们可以返回heli_acft
中没有heli_flt
中任何相关行的行,并使用IFNULL()
函数将NULL值替换为零。