mysql join查询应该从2或3个表中检索结果

时间:2016-01-02 10:21:38

标签: mysql

我有3张桌子。 产品表名称:pc_products

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

唯一键:产品表的slug和外键

折扣表:折扣

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个表格检索该产品的百分比(基于其零售商和类别)

1 个答案:

答案 0 :(得分: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仅用于过滤数据