Sql 当一个子句为false时,将查询设为true

Sql 当一个子句为false时,将查询设为true,sql,Sql,这是我的问题 SELECT pl.NAME ,pl.id_product ,pl.link_rewrite ,i.id_image ,ar.id_auctions_rutcom ,ar.actual_bid_price ,ar.start_price ,ar.min_price ,ar.buy_now_price ,ar.finish_date FROM ps_image i ,ps_auctions_rutcom ar ,ps_product_lan

这是我的问题

SELECT pl.NAME
  ,pl.id_product
  ,pl.link_rewrite
  ,i.id_image
  ,ar.id_auctions_rutcom
  ,ar.actual_bid_price
  ,ar.start_price
  ,ar.min_price
  ,ar.buy_now_price
  ,ar.finish_date
FROM ps_image i
  ,ps_auctions_rutcom ar
  ,ps_product_lang pl
WHERE ar.finish_date > '2013-07-26 11:18:15'
  AND ar.start_date < '2013-07-26 11:18:15'
  AND ar.active = 1
  AND ar.finish = 0
  AND pl.id_product = ar.id_product
  AND i.id_product = ar.id_product
  AND i.cover = 1
  AND pl.id_lang = 6
选择pl.NAME
,pl.id_产品
,pl.link_重写
,i.id_图像
,ar.id\u auctions\u rutcom
,ar.实际投标价格
,ar.起始价格
,应收账款最低价格
,ar.立即购买价格
,ar.完成日期
来自ps_图像i
,ps_auctions_rutcom ar
,ps_product_lang pl
其中ar.finish_date>'2013-07-26 11:18:15'
和ar.开始日期<'2013-07-26 11:18:15'
和ar.active=1
和ar.finish=0
pl.id_产品=ar.id_产品
i.id_产品=ar.id_产品
和i.cover=1
pl.id_lang=6

当表ps_image中的I.id_product=ar.id_product我的查询返回false时,我遇到了问题。如何将查询更改为设置为true

您可以添加查询以确保ps_图像不为空


如果i.id_product不为NULL

您应该将联接与筛选器分开,然后使用
左联接
提供所有结果 不管图像是否存在

FROM ps_auctions_rutcom ar 
    left join
    ps_image i on i.id_product = ar.id_product 
         and i.cover = 1 
    left join
    ps_product_lang pl on pl.id_product = ar.id_product 
         and pl.id_lang = 6
WHERE ....

您应该了解
加入
。谷歌

您的查询相当于
内部联接

SELECT 
  pl.name, pl.id_product, pl.link_rewrite, i.id_image, ar.id_auctions_rutcom,
  ar.actual_bid_price, ar.start_price, ar.min_price, ar.buy_now_price, ar.finish_date 
FROM ps_auctions_rutcom ar
INNER JOIN ps_product_lang pl 
        ON pl.id_product = ar.id_product 
       AND pl.id_lang = 6
INNER JOIN ps_image i
        ON i.id_product = ar.id_product 
       AND i.cover = 1 
WHERE ar.finish_date > '2013-07-26 11:18:15' 
  AND ar.start_date < '2013-07-26 11:18:15' 
  AND ar.active = 1 
  AND ar.finish = 0 

您必须用示例进一步解释您拥有的以及您希望得到的结果。您是说,即使您没有图像,也要检索其余的数据?请参阅。
SELECT 
  pl.name, pl.id_product, pl.link_rewrite, i.id_image, ar.id_auctions_rutcom,
  ar.actual_bid_price, ar.start_price, ar.min_price, ar.buy_now_price, ar.finish_date 
FROM ps_auctions_rutcom ar
INNER JOIN ps_product_lang pl 
        ON pl.id_product = ar.id_product 
       AND pl.id_lang = 6
LEFT OUTER JOIN ps_image i
             ON i.id_product = ar.id_product 
            AND i.cover = 1 
WHERE ar.finish_date > '2013-07-26 11:18:15' 
  AND ar.start_date < '2013-07-26 11:18:15' 
  AND ar.active = 1 
  AND ar.finish = 0