Nejelegantnějším způsobem by bylo použití USING
klauzule v explicitní podmínce spojení:
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;
Tímto způsobem sloupec houseid
je ve výsledku pouze jednou , i když použijete SELECT *
.
Chcete-li získat průměr epatmpg
pro vybrané řádky:
SELECT avg(v.epatmpg) AS avg_epatmpg
FROM vehv2pub v
JOIN dayv2pub d USING (houseid)
WHERE v.vehid >= 1
AND d.trpmiles < 15;
Pokud je v dayv2pub
více shod , může odvozená tabulka obsahovat více instancí každého řádku v vehv2pub
po připojení. avg()
je založen na odvozené tabulce.