Re: Strange Query Question - Mailing list pgsql-novice

From Tom Lane
Subject Re: Strange Query Question
Date
Msg-id 4298.974751177@sss.pgh.pa.us
Whole thread Raw
In response to Strange Query Question  (OTR Comm <otrcomm@wildapache.net>)
List pgsql-novice
OTR Comm <otrcomm@wildapache.net> writes:
> $query = qq|SELECT ap.id, ap.invnumber, vendor.name,
>               acc_trans.transdate, ap.invoice, acc_trans.amount
>               FROM ap, acc_trans
>               WHERE $where
>               AND acc_trans.accno = $form->{accno}
>               AND acc_trans.trans_id = ap.id
>               AND ap.vendor = vendor.id|;

> The code executes properly, but I do not see how this query can work
> without a FROM reference to the vendor table.  How does this happen?

Postgres lets you get away with that.  It's not strictly legal per
SQL92, but the equivalent construction worked in the old PostQuel
language, and we've just sort of never wanted to break it.

This has confused a lot of people, so beginning in 7.1 there'll be
a warning notice when you mix explicit-FROM and implied-FROM styles
as above:

NOTICE:  Adding missing FROM-clause entry for table "vendor"

            regards, tom lane

pgsql-novice by date:

Previous
From: OTR Comm
Date:
Subject: Strange Query Question
Next
From: "D. Duccini"
Date:
Subject: MODPERL EXAMPLE ?