MySQL查询多列到3列

MySQL query to get multiple columns to 3 columns

我有以下 mysql table 和记录: http://sqlfiddle.com/#!9/fb7c68/1

我想创建一个将记录显示在 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)

如果我理解正确,你想做什么,试试用 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;