Link to home
Start Free TrialLog in
Avatar of BenthamLtd
BenthamLtd

asked on

Unknown column in field list

Yet again, this is probably something easy that I've completely overlooked so here it is.

In a nutshell, this is an extract of a search query on my system. Works brilliantly, apart from one of the joins/selects. Every time I run it, always returns "Unknown column 'dd_gar_how_returned.GARHowReturned' in 'field list' ".

Here is the query extract in full:

SELECT
        sheets.Sheet_No AS Sheet_No,
        sheets.Sales_Ledger_No AS Sales_Ledger_No,
        sheets.CreationDateTime AS CreationDateTime,
        sheets.LatestModification AS LatestModification,
        sheets.LoggedBy AS LoggedBy,
        sheets.CompanyName AS CompanyName,
        sheets.ContactName AS ContactName,
        sheets.Postcode AS Postcode,
        sheets.Email AS Email,
        sheets.Phone AS Phone,
        sheets.InvoiceDate AS InvoiceDate,  
        goods_actually_returned.GoodsActuallyReturned AS GoodsActuallyReturned,
        goods_actually_returned.GoodsActuallyReturned_qty AS GoodsToBeSentOnReceipt_qty,
        dd_gar_quality.GARQuality AS GoodsActuallyReturned_quality,
        dd_gar_type.GARType AS GoodsActuallyReturned_type,
        dd_gar_supplier.GARSupplier AS GoodsActuallyReturned_supplier,
        dd_gar_how_returned.GARHowReturned AS HowReturned,
        consignment_no.ConsignmentNo AS ConsignmentNo

FROM sheets

LEFT JOIN goods_actually_returned ON sheets.Sheet_No = goods_actually_returned.Sheet_No

LEFT JOIN dd_gar_quality ON goods_actually_returned.GoodsActuallyReturned_quality = dd_gar_quality.GARQualityID

LEFT JOIN dd_gar_type ON goods_actually_returned.GoodsActuallyReturned_type = dd_gar_type.GARTypeID

LEFT JOIN dd_gar_supplier ON goods_actually_returned.GoodsActuallyReturned_supplier = dd_gar_supplier.GARSupplierID

LEFT JOIN dd_gar_how_returned ON dd_gar_how_returned.GARHowReturnedID = how_returned.HowReturned

LEFT JOIN consignment_no ON sheets.Sheet_No = consignment_no.Sheet_No 

WHERE 

sheets.Sheet_No = goods_actually_returned.Sheet_No 

AND dd_gar_how_returned.GARHowReturned LIKE 'Post (Royal Mail)';

Open in new window



Here is explain on the ref tables for 'dd_gar_how_returned' and 'how_returned':

/* how_returned */
+-------------+---------+------+-----+---------+-------+
| Field       | Type    | Null | Key | Default | Extra |
+-------------+---------+------+-----+---------+-------+
| Sheet_No    | int(11) | NO   |     | NULL    |       | 
| HowReturned | int(11) | YES  |     | NULL    |       | 
+-------------+---------+------+-----+---------+-------+

Example data - 
Sheet_No: 11123, HowReturned: 1
Sheet_No 11124, HowReturned: 2

/* dd_gar_how_returned */
+------------------+-------------+------+-----+---------+----------------+
| Field            | Type        | Null | Key | Default | Extra          |
+------------------+-------------+------+-----+---------+----------------+
| GARHowReturnedID | int(11)     | NO   | PRI | NULL    | auto_increment | 
| GARHowReturned   | varchar(50) | YES  |     | NULL    |                | 
+------------------+-------------+------+-----+---------+----------------+

Example data - 
GARHowReturnedID: 1, GARHowReturned: Post (Royal Mail)
GARHowReturnedID: 2, GARHowReturned: Courier

Open in new window


Any ideas, peeps?

Many thanks as always
Avatar of mbizup
mbizup
Flag of Kazakhstan image

It looks like you are using an alias (HowReturned) that is present as an actual fieldname in another table.  Try using a different alias:

dd_gar_how_returned.GARHowReturned AS TestHowReturned,


If that works, replace TestHowReturned with the alias of your choice, ensuring that the alias you choose is not present as a field name in any of your tables.
You use an alias:
dd_gar_how_returned.GARHowReturned AS HowReturned,
but then in the query you use the original column name:

LEFT JOIN dd_gar_how_returned ON dd_gar_how_returned.GARHowReturnedID = how_returned.HowReturned

Once you assign an alias, you have to stick with it.
Avatar of BenthamLtd
BenthamLtd

ASKER

Ok then, how would you write the query with the joins because everything I'm doing is throwing up either alias problems or unknown columns in on clause errors.

Cheers.
Try this:

SELECT
        sheets.Sheet_No AS Sheet_No,
        sheets.Sales_Ledger_No AS Sales_Ledger_No,
        sheets.CreationDateTime AS CreationDateTime,
        sheets.LatestModification AS LatestModification,
        sheets.LoggedBy AS LoggedBy,
        sheets.CompanyName AS CompanyName,
        sheets.ContactName AS ContactName,
        sheets.Postcode AS Postcode,
        sheets.Email AS Email,
        sheets.Phone AS Phone,
        sheets.InvoiceDate AS InvoiceDate,  
        goods_actually_returned.GoodsActuallyReturned AS GoodsActuallyReturned,
        goods_actually_returned.GoodsActuallyReturned_qty AS GoodsToBeSentOnReceipt_qty,
        dd_gar_quality.GARQuality AS GoodsActuallyReturned_quality,
        dd_gar_type.GARType AS GoodsActuallyReturned_type,
        dd_gar_supplier.GARSupplier AS GoodsActuallyReturned_supplier,
        dd_gar_how_returned.GARHowReturned AS GHowReturned,
        consignment_no.ConsignmentNo AS ConsignmentNo

FROM sheets

LEFT JOIN goods_actually_returned ON sheets.Sheet_No = goods_actually_returned.Sheet_No

LEFT JOIN dd_gar_quality ON goods_actually_returned.GoodsActuallyReturned_quality = dd_gar_quality.GARQualityID

LEFT JOIN dd_gar_type ON goods_actually_returned.GoodsActuallyReturned_type = dd_gar_type.GARTypeID

LEFT JOIN dd_gar_supplier ON goods_actually_returned.GoodsActuallyReturned_supplier = dd_gar_supplier.GARSupplierID

LEFT JOIN dd_gar_how_returned ON dd_gar_how_returned.GARHowReturnedID = how_returned.HowReturned

LEFT JOIN consignment_no ON sheets.Sheet_No = consignment_no.Sheet_No 

WHERE 

sheets.Sheet_No = goods_actually_returned.Sheet_No 

AND GHowReturned LIKE 'Post (Royal Mail)';

Open in new window



Or this:


SELECT
        sheets.Sheet_No AS Sheet_No,
        sheets.Sales_Ledger_No AS Sales_Ledger_No,
        sheets.CreationDateTime AS CreationDateTime,
        sheets.LatestModification AS LatestModification,
        sheets.LoggedBy AS LoggedBy,
        sheets.CompanyName AS CompanyName,
        sheets.ContactName AS ContactName,
        sheets.Postcode AS Postcode,
        sheets.Email AS Email,
        sheets.Phone AS Phone,
        sheets.InvoiceDate AS InvoiceDate,  
        goods_actually_returned.GoodsActuallyReturned AS GoodsActuallyReturned,
        goods_actually_returned.GoodsActuallyReturned_qty AS GoodsToBeSentOnReceipt_qty,
        dd_gar_quality.GARQuality AS GoodsActuallyReturned_quality,
        dd_gar_type.GARType AS GoodsActuallyReturned_type,
        dd_gar_supplier.GARSupplier AS GoodsActuallyReturned_supplier,
        dd_gar_how_returned.GARHowReturned AS HowReturned,
        consignment_no.ConsignmentNo AS ConsignmentNo

FROM sheets

LEFT JOIN goods_actually_returned ON sheets.Sheet_No = goods_actually_returned.Sheet_No

LEFT JOIN dd_gar_quality ON goods_actually_returned.GoodsActuallyReturned_quality = dd_gar_quality.GARQualityID

LEFT JOIN dd_gar_type ON goods_actually_returned.GoodsActuallyReturned_type = dd_gar_type.GARTypeID

LEFT JOIN dd_gar_supplier ON goods_actually_returned.GoodsActuallyReturned_supplier = dd_gar_supplier.GARSupplierID

LEFT JOIN dd_gar_how_returned ON dd_gar_how_returned.GARHowReturnedID = how_returned.HowReturned

LEFT JOIN consignment_no ON sheets.Sheet_No = consignment_no.Sheet_No 

WHERE 

sheets.Sheet_No = goods_actually_returned.Sheet_No 

AND dd_gar_how_returned.GARHowReturned LIKE 'Post (Royal Mail)';

Open in new window

Both return "Unknown column 'how_returned.HowReturned' in 'on clause'" , any other ideas?
Now this is weird as well, if I physically Select how_returned.HowReturned in the field list so that it looks like this:

SELECT
.....
how_returned.HowReturned AS HowReturnedID

LEFT JOIN dd_gar_how_returned ON dd_gar_how_returned.GARHowReturnedID = HowReturnedID

WHERE sheets.Sheet_No = goods_actually_returned.Sheet_No AND
dd_gar_how_returned.GARHowReturned = 'Post (Royal Mail)';

Open in new window


It comes back with Unknown column 'how_returned.HowReturned' in 'field list'.

Eh?!
Would it help if I listed all the "external" reference tables in the FROM statement?

E.g.
FROM sheets, dd_gar_how_returned

Open in new window


......?
ASKER CERTIFIED SOLUTION
Avatar of BenthamLtd
BenthamLtd

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Solved myself.
Solved myself.