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

时间:2014-11-24 08:25:59

标签: php 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查询这个条件。请帮助我,我的想法用完了?

提前致谢

1 个答案:

答案 0 :(得分:1)

冗长的方法,但结果与期望相同。

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