2012-01-24 2 views
-1

я использую следующий накидной запрос с LEFT JOIN-запросприсоединиться союз не работает в MySQL

(SELECT id as hotspots_id,location as town,gmlat,gmlng,street,country,zipcode as 

plz,name,description ,c.id as cat_id ,c.* FROM `jos_skopelos_pages_list` LEFT JOIN 

    `jos_skopelos_listcategories` AS c ON jos_skopelos_pages_list.type=cat_id WHERE 

published = 1) UNION ALL (SELECT id as hotspots_id,location as 

town,gmlat,gmlng,street,country,zipcode as plz,name,description ,c.id as cat_id ,c.* FROM 

`jos_skopelos_accomodation` LEFT JOIN `jos_skopelos_listcategories` AS c ON 

jos_skopelos_accomodation.type=cat_id WHERE published = 1) UNION ALL (SELECT id as 

hotspots_id,location as town,gmlat,gmlng,street,country,zipcode as plz,name,description 
,c.id as cat_id ,c.* FROM `jos_skopelos_entertainment` LEFT JOIN 

`jos_skopelos_listcategories` AS c ON jos_skopelos_entertainment.type=cat_id WHERE 

published = 1) UNION ALL (SELECT id as hotspots_id,location as 

    town,gmlat,gmlng,street,country,zipcode as plz,name,description ,c.id as cat_id ,c.* 

FROM `jos_skopelos_realstate` LEFT JOIN `jos_skopelos_listcategories` AS c ON 

jos_skopelos_realstate.type=cat_id WHERE published = 1) 

выше запрос работает файл с накидной заявление, но когда я добавить левый присоединиться заявление он дает ошибку «# 1052 -« Идентификатор столбца »в списке полей неоднозначен». Пожалуйста, имейте в виду, когда я удаляю левое соединение, значит, таблица «jos_skopelos_listcategories» мой запрос работает нормально, но когда я добавляю левую заявку на соединение, она дает указанную выше ошибку, пожалуйста, помогите

+4

Каждый раз, когда я вижу запрос, отформатированный таким образом, я уверен, что человек, который его опубликовал, не приложил никаких усилий, чтобы понять, что он делает и почему он это делает это так. – newtover

+0

моя база данных не очень нормализована, поэтому я должен написать такой запрос, но я узнаю из этой ошибки. N будет заботиться о следующем тим-уте прямо сейчас. Мне нужно решение для этого –

+1

@ user972809 - форматирование запроса не имеет ничего общего с нормализации вашей базы данных. FWIW, вы должны использовать свои другие таблицы и использовать этот псевдоним в списках столбцов. Он решит вашу ошибку (вы уже делаете это для 'c.id как cat_id', но не для всех других столбцов). –

ответ

0

Я думаю, что для всех из них вам нужно более четко определить столбцы, тем более, что id находится в обеих таблицах, к которым вы присоединяетесь tog эфир. Например, измените в первой строке, id на jos_skopelos_pages_list.id. В последнем разделе измените id на jos_skopelos_realstate.id и на все союзы между ними. Также, когда вы говорите LEFT JOIN jos_skopelos_listcategories AS c, вы можете просто написать LEFT JOIN jos_skopelos_listcategories c

Смежные вопросы