Den mest elegante måde ville være at bruge USING
klausul i en eksplicit forbindelsesbetingelse:
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;
På denne måde er kolonnen houseid
er kun i resultatet én gang , selvom du bruger SELECT *
.
For at få den gennemsnitlige epatmpg
for de valgte rækker:
SELECT avg(v.epatmpg) AS avg_epatmpg
FROM vehv2pub v
JOIN dayv2pub d USING (houseid)
WHERE v.vehid >= 1
AND d.trpmiles < 15;
Hvis der er flere matches i dayv2pub
, kan den afledte tabel indeholde flere forekomster af hver række i vehv2pub
efter sammenføjningen. avg()
er baseret på den afledte tabel.