2012-01-24 23 views
-1

不工作我用下面的联合查询与左连接查询加入与工会在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 - 字段列表中的列id'不明确”。请记住,当我删除左连接意味着表“jos_skopelos_listcategories”我的查询工作正常,但是当我添加左连接语句时,它给出了上述错误,请帮助

+4

每当我看到一个格式化的查询,我相信发布它的人没有做任何努力去理解它做什么以及它为什么做就这样。 – newtover

+0

我的数据库没有太多的规范化,所以我必须写这样的查询,但我会从错误中学习n现在我需要关心下一个tym ut我需要一个解决方案 –

+1

@ user972809 - 查询的格式与无关规范化你的数据库。 FWIW,您应该别名您的其他表,并在列列表中使用该别名。它会解决你的错误(你已经在做'c.id as cat_id'而不是你所有的其他列)。 –

回答

0

我认为所有人都需要更清楚地定义列,特别是因为id位于您要加入的两个表中醚。例如,将第一行中的id更改为jos_skopelos_pages_list.id。在最后一节中,将ID更改为jos_skopelos_realstate.id以及中间的所有联合。当你说LEFT JOIN jos_skopelos_listcategories AS c,你可以写LEFT JOIN jos_skopelos_listcategories c