2014-02-10 2 views
1

Я не слишком уверен, почему, но мои коды не могут работать. Его либо я получаю Ошибка 1052 или 1054. Вот мои коды. Пожалуйста помоги.Ошибка MySQL 1054: Неизвестная колонка «hotels.postal_code» в разделе «on»

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

Можете ли вы поделиться DDLS ваших таблиц? – Mureinik

+0

'ON hotels.postal_code = hotel_sales.sales_id' кажется неправильным. Мне кажется, что это должно быть 'ON hotels.hotel_id = hotel_sales.hotel_id'? –

+0

В вашем втором выберите, вы присоединяетесь к 'hotels.postal_code', но' hotels' не используется в этом запросе. Вы выбираете из 'malls'. –

ответ

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 

MALLS Присоединение и HOTEL_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', 
....