2016-01-02 22 views
-1

我有3個表。 產品表名:pc_productsmysql連接查詢應該從2或3個表中檢索結果

id_product|id_merchant|product_name|product_category 
123   flipkart  glass1   sunglass 
456   flipkart  glass2   sunglass 
126   snapdeal  polo1   sunglass 
486   snapdeal  polo1   sunglass 

主鍵:id_merchant

商人表名:pc_merchants

slug | retailer 
flipkart  Flipkart 
snapdeal  Snapdeal 

唯一鍵:蛞蝓和外鍵的產品表

折扣表:折扣

id|merchant| percentage|category_name 
1 flipkart  5   sunglass 
2 snapdeal  10  sunglass 

預期結果:當我根據該產品的商家和產品類別選擇任何產品時,應返回百分比。

告訴我是否需要在表之間進行任何更改作爲外鍵。 我使用的查詢是:

select feed_product_name,id_merchant,category_name,percentage 
from pc_products_merchants m,pc_products p 
where m.slug = p.id_merchant and product_name LIKE '%glass1'; 

在此查詢我想找回百分比也是基於它的零售商和類別產品通過使用上述3個表

+0

您應該在查詢中使用顯式連接而不是隱式連接 –

+0

您可以爲顯式連接或隱式連接編寫查詢。我不知道這 –

+0

這個查詢是檢索我相同的記錄兩次不同百分比5和10.這意味着零售商snapdeal值5和10.我只想給予10%的折扣爲snapdeal零售商。 –

回答

0
SELECT pc_products.*, pc_merchants.retailer, discount.percentage 
FROM pc_products 
JOIN pc_merchants ON pc_products.id_merchants = pc_merchants.slug 
JOIN discount ON pc_products.product_category = discount.category_name 
    AND pc_products.id_merchant = discount.merchant 
WHERE product_name LIKE '%glass1' 

該查詢使用顯式聯接。隱含的不再被使用。表格之間的關係在FROM語句中聲明,WHERE僅用於過濾數據

+0

非常感謝。此查詢工作正常,感謝您與我的合作。 –