De meest elegante manier zou zijn om de te gebruiken USING
clausule in een expliciete join-voorwaarde:
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;
Op deze manier wordt de kolom houseid komt slechts eenmaal voor in het resultaat , zelfs als u SELECT * . gebruikt .
Om de gemiddelde epatmpg te krijgen voor de geselecteerde rijen:
SELECT avg(v.epatmpg) AS avg_epatmpg
FROM vehv2pub v
JOIN dayv2pub d USING (houseid)
WHERE v.vehid >= 1
AND d.trpmiles < 15;
Als er meerdere overeenkomsten zijn in dayv2pub , kan de afgeleide tabel meerdere instanties van elke rij in vehv2pub bevatten na de toetreding. avg() is gebaseerd op de afgeleide tabel.