2015-11-27 34 views
-1

我有2個選擇返回此字段。 選擇1:合併兩個相似的選項刪除兩個文件副本

+-----------+---------+-------+ 
| serviceID | modelID | price | 
+-----------+---------+-------+ 
| 1  | 100  | 0 | 
+-----------+---------+-------+ 
| 2  | 100  | 0 | 
+-----------+---------+-------+ 
| 1  | 200  | 0 | 
+-----------+---------+-------+ 
| 2  | 200  | 0 | 
+-----------+---------+-------+ 

選擇2

+-----------+---------+-------+ 
| serviceID | modelID | price | 
+-----------+---------+-------+ 
| 1  | 100  | 499 | 
+-----------+---------+-------+ 

我需要的結果是這樣的:

+-----------+---------+-------+ 
| serviceID | modelID | price | 
+-----------+---------+-------+ 
| 1  | 100  | 499 | 
+-----------+---------+-------+ 
| 2  | 100  | 0 | 
+-----------+---------+-------+ 
| 1  | 200  | 0 | 
+-----------+---------+-------+ 
| 2  | 200  | 0 | 
+-----------+---------+-------+ 

即從選擇1所有,但如果選擇2已經FLD從選擇1

回答

0
更換
SELECT A.serviceID, A.modelID, IF(B.price IS NULL, A.price, B.price) AS price 
FROM table1 A LEFT JOIN table2 B ON 
A.serviceID = B.serviceID AND A.modelID= B.modelID 
0
select * from (
(select 2 here) union (select 1 here)) as r group by serviceID, modelID 

這對我有用。可能它會幫助某人。