Thread: Converting query to view - duplicate fields
Hello, Trying to convert the query below to a view. The problem is despite it working as a query when trying to save it as a view the database returns the error that the field tablealias.cmpname is duplicated. (Which it is and has to be) So how to a refer to the same table more than once and get the data without getting the above error. (Basically it is looking up different addresses depending on the codes stored in mhdespatch table). Can I do this with a view, or do I have to create several views and link them together. Thanks Richard Postgresql 7.4.1,SuSE 8.1 Query Begins ==> CREATE OR REPLACE VIEW public.test AS SELECT mhdespatch.gdn, mhdespatch.date, mhdespatch.remarks, mhdespatch.sp_instruct1, mhdespatch.sp_instruct2, mhdespatch.sp_instruct3, tbldelivery.cmpname, tbldelivery.adds1, tbldelivery.adds2, tbldelivery.adds3, tbldelivery.town, tbldelivery.county, tbldelivery.pcode, tbldelivery.country, tbldelivery.tel1, mhdespatch.del_ref, tblsender.cmpname, mhdespatch.send_ref, tblhaulier.cmpname, mhdespatch.haul_reg, mhdespatch.cov, tblhaulier.tel1 FROM mhdespatch INNER JOIN tblfmna AS tblhaulier ON mhdespatch.haul_code = tblhaulier.code INNER JOIN tblfmna AS tblsender ON mhdespatch.send_code = tblsender.code INNER JOIN tblfmna AS tbldelivery ON mhdespatch.del_code = tbldelivery.code; <=== Query Ends
On Tue, 9 Mar 2004, Richard Grosse wrote: > Trying to convert the query below to a view. The problem is > despite it working as a query when trying to save it as a > view the database returns the error that the field tablealias.cmpname > is duplicated. (Which it is and has to be) You're going to need to use column aliases to alias (for example) tbldeliver.cmpname, tblsender.cmpname, tblhaulier.cmpname to different aliases in the view, perhaps "tbldeliver.cmpname" "tblsender.cmpname" and "tblhaulier.cmpname" (note the double quotes). > CREATE OR REPLACE VIEW public.test AS > SELECT mhdespatch.gdn, mhdespatch.date, mhdespatch.remarks, > mhdespatch.sp_instruct1, > mhdespatch.sp_instruct2, mhdespatch.sp_instruct3, tbldelivery.cmpname, > tbldelivery.adds1, tbldelivery.adds2, tbldelivery.adds3, tbldelivery.town, > tbldelivery.county, tbldelivery.pcode, tbldelivery.country, tbldelivery.tel1, > mhdespatch.del_ref, tblsender.cmpname, mhdespatch.send_ref, > tblhaulier.cmpname, > mhdespatch.haul_reg, mhdespatch.cov, tblhaulier.tel1 > FROM mhdespatch > INNER JOIN tblfmna AS tblhaulier ON mhdespatch.haul_code = tblhaulier.code > INNER JOIN tblfmna AS tblsender ON mhdespatch.send_code = tblsender.code > INNER JOIN tblfmna AS tbldelivery ON mhdespatch.del_code = tbldelivery.code;
At 02:17 10/03/2004, you wrote: >On Tue, 9 Mar 2004, Richard Grosse wrote: > > > Trying to convert the query below to a view. The problem is > > despite it working as a query when trying to save it as a > > view the database returns the error that the field tablealias.cmpname > > is duplicated. (Which it is and has to be) > >You're going to need to use column aliases to alias (for example) >tbldeliver.cmpname, tblsender.cmpname, tblhaulier.cmpname to different >aliases in the view, perhaps >"tbldeliver.cmpname" "tblsender.cmpname" and "tblhaulier.cmpname" >(note the double quotes). Great just what I needed to know. Works fine now :-) Thanks Richard