Der eleganteste Weg wäre die Verwendung des USING
-Klausel in einer expliziten Join-Bedingung:
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;
Auf diese Weise wird die Spalte houseid
kommt nur einmal im Ergebnis vor , auch wenn Sie SELECT *
verwenden .
Um das durchschnittliche epatmpg
zu erhalten für die ausgewählten Zeilen:
SELECT avg(v.epatmpg) AS avg_epatmpg
FROM vehv2pub v
JOIN dayv2pub d USING (houseid)
WHERE v.vehid >= 1
AND d.trpmiles < 15;
Wenn es mehrere Übereinstimmungen in dayv2pub
gibt , kann die abgeleitete Tabelle mehrere Instanzen jeder Zeile in vehv2pub
enthalten nach dem beitreten. avg()
basiert auf der abgeleiteten Tabelle.