douan9541 2016-10-25 11:05
浏览 42

使用PHP和MySQL连接多个表时无法获得价值

I have an issue in my SQL query. I need to fetch value from DB by joining multiple tables but I could not get the data for some condition. I am explaining my query below.

    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.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 
    WHERE b.city='2' 
    AND d.day_id='1' 
    AND c.special='1' 
    AND sl.date_from <='2016-10-31' 
    AND sl.date_to >= '2016-10-31' 
    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 
    WHERE b.city='2' 
    AND d.day_id='1' 
    AND c.special='1' 
    AND b.status=1 
    AND sub.status=1 
    AND sl.date_from ='' 
    AND sl.date_to ='' 
    ORDER BY b_member_id DESC;

Here i am not getting any value while db_special_images has no entry for this sl.date_from ='' and sl.date_to =''. Here i need the value should come while any one of following condition will match.

Condition

  1. If In db_special_images table (date_from ='' and date_to ='') and (date_from !='' and date_to !='').

  2. If In db_special_images table (date_from ='' and date_to ='').

  3. If In db_special_images table (date_from !='' and date_to !='').

I need if one of any above condition will match the value should come.

  • 写回答

0条回答

    报告相同问题?

    悬赏问题

    • ¥15 matlab数字图像处理频率域滤波
    • ¥15 在abaqus做了二维正交切削模型,给刀具添加了超声振动条件后输出切削力为什么比普通切削增大这么多
    • ¥15 ELGamal和paillier计算效率谁快?
    • ¥15 file converter 转换格式失败 报错 Error marking filters as finished,如何解决?
    • ¥15 ubuntu系统下挂载磁盘上执行./提示权限不够
    • ¥15 Arcgis相交分析无法绘制一个或多个图形
    • ¥15 关于#r语言#的问题:差异分析前数据准备,报错Error in data[, sampleName1] : subscript out of bounds请问怎么解决呀以下是全部代码:
    • ¥15 seatunnel-web使用SQL组件时候后台报错,无法找到表格
    • ¥15 fpga自动售货机数码管(相关搜索:数字时钟)
    • ¥15 用前端向数据库插入数据,通过debug发现数据能走到后端,但是放行之后就会提示错误