Най-елегантният начин би бил да използвате USING
клауза в изрично условие за присъединяване:
SELECT houseid, v.vehid, v.epatmpg, d.houseid, d.trpmiles
FROM vehv2pub v
JOIN dayv2pub d USING (houseid)
WHERE v.vehid >= 1
AND d.trpmiles < 15;
По този начин колоната houseid
е в резултата само веднъж , дори ако използвате SELECT *
.
За да получите средния epatmpg
за избраните редове:
SELECT avg(v.epatmpg) AS avg_epatmpg
FROM vehv2pub v
JOIN dayv2pub d USING (houseid)
WHERE v.vehid >= 1
AND d.trpmiles < 15;
Ако има множество съвпадения в dayv2pub
, получената таблица може да съдържа множество екземпляри на всеки ред в vehv2pub
след присъединяването. avg()
се базира на получената таблица.