2015-11-02 72 views
0

我有这个查询检查相关(类似)到所示的一个产品,如果有任何它会显示它们。如果没有任何相关(类似)产品展示其他产品,如何更改它。以下是查询:更改mysql查询返回总是结果

select p.id,bg_product_name,unique_name,product_price, 
promo_price, promo_end_date, available_qty,model,ptc.category_id, free_delivery, free_option 
from products p, related_products rp, products_to_categories ptc where 
rp.product_id="10284" and rp.related_id=p.id and p.id=ptc.product_id and 
p.available_qty > 0 AND p.active="1" group by p.id limit 5 

谢谢任何​​帮助和建议!

回答

1

试试这个

SELECT 
    p.id,bg_product_name,unique_name,product_price, promo_price, promo_end_date, 
    available_qty,model,ptc.category_id, free_delivery, free_option 
FROM 
    products p 
    LEFT OUTER JOIN products_to_categories ptc ON p.id=ptc.product_id 
    LEFT OUTER JOIN related_products rp ON rp.related_id=p.id AND rp.product_id="10284" 

WHERE 
    p.available_qty > 0 AND p.active="1" 
GROUP BY p.id LIMIT 5 
+0

谢谢大家家伙! – Europeuser

+0

#mynawaz为什么当我通过rp.related_id添加订单或者其他任何我试图首先查看相关产品的命令时它不起作用? – Europeuser

+0

这可能取决于你的数据或分组,你可以分享一些样本数据和你试过的东西 – mynawaz

1

使用左连接,并把“rp.product_id =”10284“”条件作为连接条件而不是在哪里。

像 商品P的LEFT JOIN related_products RP的rp.related_id = p.id AND rp.product_id = “10284”

遵循完整的查询。