Обсуждение: PGError: ERROR: missing FROM-clause entry for table

Поиск
Список
Период
Сортировка

PGError: ERROR: missing FROM-clause entry for table

От
"James B. Byrne"
Дата:
I am getting this error:

PGError: ERROR:  missing FROM-clause entry for table "ca_customs_entry"
LINE 1: ..._entries"."is_cadex_transmitted" = 'f') ORDER BY
ca_customs...

The code is generated by a Ruby-on-Rails-3.0.1 ActiveRecord model:

SELECT "ca_customs_shipments".* FROM "ca_customs_shipments" INNER
JOIN "ca_customs_entries" ON
"ca_customs_entries"."ca_customs_shipment_id" =
"ca_customs_shipments"."id" WHERE
("ca_customs_entries"."is_cadex_transmitted" = 'f') ORDER BY
ca_customs_entry.is_across_transmitted,
ca_customs_entry.is_across_rejected,
ca_customs_entry.is_across_accepted,
ca_customs_entry.is_cadex_released LIMIT 5 OFFSET 0


From what I have been able to piece together for myself I suspect
that the cause may be the absence of an 'AS "alias"' immediately
following the 'FROM "ca_customs_shipments"' segment.  PG evidently
treats this as required element whereas standard SQL does not. If
someone could confirm that my suspicions are well founded then I
will raise an issue to handle the matter with the software
maintainers.

On the other hand, if there is another cause of this then I would
like to have that information as well.

Sincerely,

--
***          E-Mail is NOT a SECURE channel          ***
James B. Byrne                mailto:ByrneJB@Harte-Lyne.ca
Harte & Lyne Limited          http://www.harte-lyne.ca
9 Brockley Drive              vox: +1 905 561 1241
Hamilton, Ontario             fax: +1 905 561 0757
Canada  L8E 3C3


Re: PGError: ERROR: missing FROM-clause entry for table

От
Robert Treat
Дата:
On Thu, Nov 25, 2010 at 9:21 PM, James B. Byrne <byrnejb@harte-lyne.ca> wrote:
I am getting this error:

PGError: ERROR:  missing FROM-clause entry for table "ca_customs_entry"
LINE 1: ..._entries"."is_cadex_transmitted" = 'f') ORDER BY
ca_customs...

The code is generated by a Ruby-on-Rails-3.0.1 ActiveRecord model:

SELECT "ca_customs_shipments".* FROM "ca_customs_shipments" INNER
JOIN "ca_customs_entries" ON
"ca_customs_entries"."ca_customs_shipment_id" =
"ca_customs_shipments"."id" WHERE
("ca_customs_entries"."is_cadex_transmitted" = 'f') ORDER BY
ca_customs_entry.is_across_transmitted,
ca_customs_entry.is_across_rejected,
ca_customs_entry.is_across_accepted,
ca_customs_entry.is_cadex_released LIMIT 5 OFFSET 0

Looks to me like the problem is you are trying to ORDER BY columns in "ca_customs_entry", but there is no such table for that (don't confuse it with "ca_customs_entries").  You need to either set a matching alias, or fix the table name qualifier in those order by columns. 


Robert Treat

Re: PGError: ERROR: missing FROM-clause entry for table

От
"James B. Byrne"
Дата:
On Thu, November 25, 2010 21:58, Robert Treat wrote:
> On Thu, Nov 25, 2010 at 9:21 PM, James B. Byrne
> <byrnejb@harte-lyne.ca>wrote:

>>
>
> Looks to me like the problem is you are trying to ORDER BY columns
> in
> "ca_customs_entry", but there is no such table for that (don't
> confuse it
> with "ca_customs_entries").  You need to either set a matching
> alias, or fix
> the table name qualifier in those order by columns.

That was exactly the problem.  Thank you very much.  I am afraid
that the mental gymnastics that Rails requires--table names are
plural, corresponding model classes are singular--often trips me up.
 I would never have seen that error on my own.


--
***          E-Mail is NOT a SECURE channel          ***
James B. Byrne                mailto:ByrneJB@Harte-Lyne.ca
Harte & Lyne Limited          http://www.harte-lyne.ca
9 Brockley Drive              vox: +1 905 561 1241
Hamilton, Ontario             fax: +1 905 561 0757
Canada  L8E 3C3