2016-09-17 96 views
-1

我有以下MySQL表和記錄: http://sqlfiddle.com/#!9/fb7c68/1MySQL查詢來獲得多列3列

我想打一個查詢,將顯示在3列

product_id, parent_option_id, parent_option_value_id (only if the parent_option_id > 0) 
. 
. 
. 
. 
product_id, child_option_id, child_option_value_id (only if the child_option_id > 0) 
. 
. 
. 
. 
product_id, grandchild_option_id, grandchild_option_value_id (only if the grandchild_option_id > 0) 

回答

1

如果這些記錄我正確地理解,你想要做什麼,用UNION組合的3個查詢來嘗試。

SELECT 
    product_id as id, 
    parent_option_id as option_id, 
    parent_option_value_id as option_value_id 
FROM option_value 
WHERE 
    parent_option_id > 0 
UNION 
SELECT 
    product_id as id, 
    child_option_id as option_id, 
    child_option_value_id as option_value_id 
FROM option_value 
WHERE 
    child_option_id > 0 
UNION 
SELECT 
    product_id as id, 
    grandchild_option_id as option_id, 
    grandchild_option_value_id as option_value_id 
FROM option_value 
WHERE 
    grandchild_option_id > 0;