2014-11-24 112 views
2

類別表和產品表模式給出如下,並給出結果結構。價格檢查產品如果不可用獲取類別價格其他產品價格 - 需要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

回答

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

+0

感謝您的查詢,它有助於使用MySQL查詢創建視圖,無需其他循環 – Praveen 2018-01-22 11:53:46