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