Search code examples
mysqlsqlunionmysql-error-1054mysql-error-1052

MySQL Error 1054: Unknown Column 'hotels.postal_code' in 'on clause'


I'm not too sure why but my codes can't seem to work. Its either I get Error 1052 or 1054. Here are my codes. Please Help.

SELECT

    hotels.postal_code AS ' Hotel Postal Code',
    name AS 'Hotel Name',
    latitude AS 'Latitude',
    longitude AS 'Longitude',
    address AS 'Hotel Address',
    hyperlink AS 'Hotel Hyperlink',
    hotels.district AS 'Hotel District',
    'hotel' AS type

FROM
    hotels

        join
    hotel_sales ON hotels.postal_code = hotel_sales.sales_id
        join
    postal_code_location ON hotels.district = postal_code_location.district 

UNION SELECT 

    malls.postal_code AS ' Mall Postal Code',
    name AS 'Mall Name',
    latitude AS 'Latitude',
    longitude AS 'Longitude',
    address AS 'Mall Address',
    hyperlink AS 'Mall Hyperlink',
    malls.district AS 'Mall District',
    'mall' AS type
FROM
malls

        join
    hotel_sales ON hotels.postal_code = hotel_sales.sales_id
        join
    postal_code_location ON hotels.district = postal_code_location.district

Solution

  • Replace

    FROM
    malls
    
            join
        hotel_sales ON hotels.postal_code = hotel_sales.sales_id
    

    AS

    FROM
    malls
    
            join
        hotel_sales ON malls.postal_code = hotel_sales.sales_id
    

    Joining MALLS and HOTEL_SALES with right column...

    So the final Query would be..

    SELECT
    
        hotels.postal_code AS ' Hotel Postal Code',
        name AS 'Hotel Name',
        latitude AS 'Latitude',
        longitude AS 'Longitude',
        address AS 'Hotel Address',
        hyperlink AS 'Hotel Hyperlink',
        hotels.district AS 'Hotel District',
        'hotel' AS type
    
    FROM
        hotels
    
            join
        hotel_sales ON hotels.postal_code = hotel_sales.sales_id
            join
        postal_code_location ON hotels.district = postal_code_location.district 
    
    UNION SELECT 
    
        malls.postal_code AS ' Mall Postal Code',
        name AS 'Mall Name',
        latitude AS 'Latitude',
        longitude AS 'Longitude',
        address AS 'Mall Address',
        hyperlink AS 'Mall Hyperlink',
        malls.district AS 'Mall District',
        'mall' AS type
    FROM
    malls
    
            join
        hotel_sales ON malls.postal_code = hotel_sales.sales_id
            join
        postal_code_location ON hotels.district = postal_code_location.district