2014-02-10 36 views
1

我不太清楚为什么,但我的代码似乎无法工作。它或者我得到错误1052或1054. 这是我的代码。请帮忙。MySQL错误1054:'on子句'中的未知列'hotels.postal_code'

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 
+1

你可以分享你的表中的DDL? – Mureinik

+0

'ON hotels.postal_code = hotel_sales.sales_id'似乎是错误的。听起来对我来说应该是'ON hotels.hotel_id = hotel_sales.hotel_id'? –

+0

在您的第二个选择中,您加入了'hotels.postal_code',但该查询中没有使用“酒店”。你正在从'商场'选择。 –

回答

2

更换

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 

加入MALLSHOTEL_SALES与右列...

所以最终的查询是..

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 
+0

你真的想编辑'hotels.district',然后我们再次得到“不行”:) – oerkelens

+0

好的问题解决了。 :)非常感谢大家! – iRandallT

1

此错误是在你的查询有关

歧义COLUMN_ID

应该是这样的

SELECT 
    hotels.postal_code AS ' Hotel Postal Code', 
    hotels.name AS 'Hotel Name', 
    hotels.latitude AS 'Latitude', 
.... 
相关问题