Php 更改mysql查询以始终返回结果

Php 更改mysql查询以始终返回结果,php,mysql,Php,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_prod

我有这个查询,它检查与显示的产品相关的(类似的),如果有,它将显示它们。如果没有任何相关的(类似的)产品展示其他产品,如何进行更改。以下是查询:

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
谢谢你的帮助和建议

使用左连接并将“rp.product_id=“10284”条件作为连接条件不在其中

像 产品p左连接相关产品rp ON rp.related_id=p.id和rp.product_id=“10284”

接着是完整的查询。

试试这个

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

#mynawaz为什么我通过rp.related_id添加订单或其他任何我尝试先订购以查看相关产品的产品都不起作用?这可能取决于您的数据或分组,您能否共享一些示例数据和您尝试过的内容