使用PHP和MySQL加入多表时出现SQL错误

时间:2016-10-22 11:25:58

标签: php mysql

在尝试使用PHP和MySQL中的不同条件加入多个表时,我收到以下错误。

  

UNION和ORDER BY的使用不正确

这是我的问题:

 document.getElementById("someButtonId").click(); 

如何解决此错误?

1 个答案:

答案 0 :(得分:1)

您应该仅在查询结尾处分配订单,而不是在每个选择中 并为不同表中具有相同名称的列使用适当的别名

select 
     b.member_id as b_member_id
    ,b.rest_name
    ,b.city
    ,b.proviance
    ,b.postal
    ,b.address
    ,b.country
    ,b.person
    ,b.mobile
    ,b.url
    ,b.status
    ,b.premium
    ,b.image
    ,b.business_phone_no
    ,b.email
    ,b.multiple_image
    ,b.latitude
    ,b.longitude
    ,b.quadrant
    ,d.member_id as d_member_id
    ,d.day_id
    ,d.cat_id
    ,d.subcat_id
    ,d.comment
    ,d.city
    ,d.special_images
    ,c.cat_id
    ,c.special
    ,sub.subcat_id
    ,sub.subcat_name
    ,sub.status
    ,sl.day_id
    ,sl.member_id
    ,sl.date_from
    ,sl.date_to 
from db_restaurant_basic as b 
left join db_restaurant_detail as d on b.b_member_id=d.d_member_id 
left join db_category as c on d.cat_id=c.cat_id 
left join db_subcategory as sub on d.subcat_id=sub.subcat_id 
left join db_special_images as sl on d.day_id=sl.day_id and d.member_id=sl.member_id 
where b.city='2' 
  and d.day_id='3' 
  and c.special='2' 
  and sl.date_from <='2016-10-26' 
  and sl.date_to >= '2016-10-26' 
  and b.status=1 
  and sub.status=1 
  and sl.date_from !='' 
  and sl.date_to !='' 

UNION ALL 

SELECT 
     b.member_id
    ,b.rest_name
    ,b.city
    ,b.proviance
    ,b.postal
    ,b.address
    ,b.country
    ,b.person
    ,b.mobile
    ,b.url
    ,b.status
    ,b.premium
    ,b.image
    ,b.business_phone_no
    ,b.email
    ,b.multiple_image
    ,b.latitude
    ,b.longitude
    ,b.quadrant
    ,d.member_id
    ,d.day_id
    ,d.cat_id
    ,d.subcat_id
    ,d.comment
    ,d.city
    ,d.special_images
    ,c.cat_id
    ,c.special
    ,sub.subcat_id
    ,sub.subcat_name
    ,sub.status
    ,sl.day_id
    ,sl.member_id
    ,sl.date_from
    ,sl.date_to 
from db_restaurant_basic as b 
left join db_restaurant_detail as d on b.member_id=d.member_id 
left join db_category as c on d.cat_id=c.cat_id 
left join db_subcategory as sub on d.subcat_id=sub.subcat_id 
left join db_special_images as sl on d.day_id=sl.day_id and d.member_id=sl.member_id 
where b.city='2' 
  and d.day_id='3' 
  and c.special='2' 
  and b.status=1 
  and sub.status=1 a
  nd sl.date_from ='' 
  and sl.date_to ='' 
ORDER BY b_member_id DESC