我在MySQL上有两个不同的表,命名为"患者"和#34;捐助者"。我想计算患者的平均值'年龄和捐赠者'年龄。
我在MySQL上运行此查询:
SELECT AVG(patient_age) AS patient_age_avg FROM patient JOIN (SELECT
AVG(donor_age) AS donor_age_avg FROM donor);
它返回给我这个错误:
错误代码:1248。每个派生表必须有自己的别名
我在哪里犯错误?
答案 0 :(得分:0)
只需在SELECT
中使用两个子查询:
SELECT (SELECT AVG(patient_age) FROM patient) as patient_age_avg,
(SELECT AVG(donor_age) FROM donor) as donor_age_avg;
或者,如果你真的喜欢,请将它们放在FROM
子句中并使用CROSS JOIN
:
SELECT p.patient_age_avg, d.donor_age_avg
FROM (SELECT AVG(patient_age) as patient_age_avg FROM patient
) p CROSS JOIN
(SELECT AVG(donor_age) as donor_age_avg FROM donor
) d;
我稍微喜欢第一种方法,因为我不必发明表别名 - 但这实际上是次要的,次要的,次要的考虑。