价格检查产品如果不可用获取类别价格其他产品价格 - 需要mysql查询

问题描述:

类别表和产品表模式给出如下,并给出结果结构。价格检查产品如果不可用获取类别价格其他产品价格 - 需要mysql查询

产品表:

category id | product id 
------------------------- 
1   : 1 
1   : 2 
1   : 3 

价格表:

category id | product id | price 
--------------------------------- 
1   | NULL | 10.00 
1   | 3  | 15.00 

结果:

category id | product id | price 
--------------------------------- 
1   : 1  : 10.00 
1   : 2  : 10.00 
1   : 3  : 15.00 

我需要这个条件MySQL查询。请帮我解决问题的想法?

在此先感谢

+0

我觉得你的产品表和价格表可以合并成一个表。产品(category_id,product_id,price,prod_name,date_created) – Edrich 2014-11-24 08:33:24

冗长的方法,但结果是所需的相同。

SELECT c.categoryid, c.productid, price 
FROM cat c 
JOIN link l USING(categoryid) WHERE l.productid IS NOT NULL AND l.productid<=>c.productid 
UNION 

SELECT c.categoryid, c.productid, price 
FROM cat c 
JOIN link l USING(categoryid) 
WHERE L.productid IS NULL AND c.productid NOT IN(
SELECT DISTINCT c.productid 
FROM cat c 
JOIN link l USING(categoryid) 
    WHERE l.productid IS NOT NULL AND l.productid<=>c.productid 
    ) 

验证这里sqlfiddle

+0

感谢您的查询,它有助于使用MySQL查询创建视图,无需其他循环 – Praveen 2018-01-22 11:53:46