Najbardziej eleganckim sposobem byłoby użycie USING
klauzula w wyraźnym warunku dołączenia:
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;
W ten sposób kolumna houseid
jest w wyniku tylko raz , nawet jeśli używasz SELECT *
.
Aby uzyskać średnią epatmpg
dla wybranych wierszy:
SELECT avg(v.epatmpg) AS avg_epatmpg
FROM vehv2pub v
JOIN dayv2pub d USING (houseid)
WHERE v.vehid >= 1
AND d.trpmiles < 15;
Jeśli istnieje wiele dopasowań w dayv2pub
, tabela pochodna może zawierać wiele wystąpień każdego wiersza w vehv2pub
po połączeniu. avg()
jest oparty na tabeli pochodnej.