我无法为自己的生活弄清楚为什么这是错误的
SELECT * FROM SELECT c.city_id, p.prop_ynow_id, p.propertyid, p.prop_add_value, p.name, picture, ifnull(p.address,'') as`location`, ifnull(city,'')as`city`, ifnull(ShortCut,'') as `state`, ifnull(p.zip,'') as `zip`, min(if(pr.minrent = 0,99999999,pr.minrent)) as minrent, max(pr.maxrent) as maxrent, '' as service, hood_id, ifnull(p.phone,'') as `phone`, latitude, longitude, min(CAST(pu.fullBath AS UNSIGNED)) as`minbath`, max(CAST(pu.fullBath AS UNSIGNED)) as`maxbath`, min(CAST(pu.Bed AS UNSIGNED)) as`minbed` , max(CAST(pu.Bed AS UNSIGNED)) as`maxbed`, '' as url, '' as source_id, '' as source_name, '' as addresscode, '' as citycode, '' as ctime, '' as paid, '' as similar_url, '' as created_at, '' as updated_at, '' as city_name, '' as service_listing_id FROM wiki_city_list c join propertyinfo p on c.city_id=p.city join ynow_rentwiki.Property_Unitlayout pu on p.prop_ynow_id=pu.P_Ident join (SELECT CAST(substring_index(if(Rent >0 ,Rent,RentLow),'.',1) AS UNSIGNED) as minrent, CAST(substring_index(if(Rent >0,Rent,Renthigh),'.',1) AS UNSIGNED) as maxrent,PRE_Ident,P_Ident,UNL_Ident,RTY_Ident from ynow_rentwiki.Property_rents where P_Ident in (3958, 4576, 4577) and (Rent!='' or (Rentlow!='' and Renthigh!='')) ) as pr on pu.UNL_Ident=pr.UNL_Ident join state s on (p.state = s.stateid OR p.state = s.ShortCut ) WHERE pu.Status='Active' and p.delete_date='0000-00-00' GROUP BY c.city_id, p.prop_ynow_id UNION SELECT c.city_id, p.prop_ynow_id, p.propertyid, p.prop_add_value, p.name, picture, ifnull(p.address,'') as`location`, ifnull(city,'')as`city`, ifnull(ShortCut,'') as `state`, ifnull(p.zip,'') as `zip`, min(if(pr.minrent = 0,99999999,pr.minrent)) as minrent, max(pr.maxrent) as maxrent, '' as service, hood_id, ifnull(p.phone,'') as `phone`, latitude, longitude, min(CAST(pu.fullBath AS UNSIGNED)) as`minbath`, max(CAST(pu.fullBath AS UNSIGNED)) as`maxbath`, min(CAST(pu.Bed AS UNSIGNED)) as`minbed` , max(CAST(pu.Bed AS UNSIGNED)) as`maxbed`, '' as url, '' as source_id, '' as source_name, '' as addresscode, '' as citycode, '' as ctime, '' as paid, '' as similar_url, '' as created_at, '' as updated_at, '' as city_name, '' as service_listing_id FROM wiki_city_list c join propertyinfo p on c.city_id=p.city join ynow_rentwiki.Property_Unitlayout pu on p.prop_ynow_id=pu.P_Ident join (SELECT CAST(substring_index(if(Rent >0 ,Rent,RentLow),'.',1) AS UNSIGNED) as minrent, CAST(substring_index(if(Rent >0,Rent,Renthigh),'.',1) AS UNSIGNED) as maxrent,PRE_Ident,P_Ident,UNL_Ident,RTY_Ident from ynow_rentwiki.Property_rents where P_Ident in (9744) and (Rent!='' or (Rentlow!='' and Renthigh!='')) ) as pr on pu.UNL_Ident=pr.UNL_Ident join state s on (p.state = s.stateid OR p.state = s.ShortCut ) WHERE pu.Status='Active' and p.delete_date='0000-00-00' GROUP BY c.city_id, p.prop_ynow_id UNION SELECT '' as prop_ynow_id, id as propertyid, 0 as prop_add_value, t.name as name, '' as picture, t.address as location, t.city as city, s.ShortCut as state, t.zip as zip, CAST(REPLACE(REPLACE(t.price,'$',''),',','') as UNSIGNED) as minrent, '' as maxrent, t.service as service, '' as hood_id, '' as phone, t.latitude as latitude, t.longitude as longitude, t.bathrooms as minbath, '' as maxbath, t.bedrooms as minbed, '' as maxbed, t.url as url, t.source_id as source_id, t.source_name as source_name, t.addresscode as addresscode, t.citycode as citycode, t.ctime as ctime, t.paid as paid, t.similar_url as similar_url, t.created_at as created_at, t.updated_at as updated_at, SUBSTRING_INDEX(c.city_name,'_',1) as city_name, t.service_listing_id as service_listing_id FROM LBCPrimary.third_party_properties as t, LBCPrimary.wiki_city_list as c, LBCPrimary.state as s WHERE t.city in ( '230' ) and address <> '' and t.city = c.city_id and c.city_state = s.stateid order by t.ctime desc limit 46 as a limit 0,50
它的含义与所说的完全一样-每个派生表都 必须 有一个别名。SELECT a.* FROM (SELECT ....)a
SELECT a.* FROM (SELECT ....)a
更新。这应该为您工作:
SELECT xxx.* FROM ( SELECT .... FROM .... UNION ( SELECT .... FROM ..... LIMIT 46 ) LIMIT 50 )xxx