2013-09-30 46 views
0

比如我有2個表:是有可能創建MySQL查詢(排序考慮國外列列)

product: 
id: integer 
price: integer 

variation: 
id: integer 
product_id: integer 
price integer 

有些產品有差異,有些產品沒有變化。 我想獲得所有產品,按價格排序。如果產品有變化,該產品必須按第一個變化價格排序,而不是自己的價格。

是否有可能做出這樣的推動標準或查詢?

回答

2
SELECT 
* 
FROM 
product p 
LEFT JOIN variation v ON p.id = v.product_id 
ORDER BY COALESCE(v.price, p.price) 

COALESCE()返回其不是NULL的第一個參數。 LEFT JOIN返回產品表中的所有內容,如果變體表上沒有匹配,則有NULL

+0

謝謝,它的工作原理。添加了DISTINCT以擁有獨特的產品 – user2554865