2015-11-02 63 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」

遵循完整的查詢。