2014-11-07 3 views
0

У меня есть две таблицы products и dimensions. Таблица dimensions имеет следующие поля: product_id, имя, значение, единица измерения.Как выбрать другой столбец, основанный на значении поля

Я хочу присоединиться к этим таблицам таким образом, чтобы каждое имя измерения отображалось как отдельный столбец в результате. Например. Я следующие записи в таблице размеров:

1, width, 4, inches 
2, width, 5, inches 
1, length, 10, inches 
2, height, 7, inches 

Я хочу, чтобы результат как:

product id, length, length unit, width, width unit, height, height unit 
1    10  inches  4  inches 
2         5  inches  7  inches 

Как я могу добиться этого с помощью SQL-запроса?

ответ

3

Вы можете попробовать использовать его для статусов LEFT JOIN.

Например

SELECT p.id, l.value AS length, l.unit AS length_unit, w.value AS width, w.unit AS width_unit, h.value AS height, h.unit AS height_unit 
FROM products AS p 
LEFT JOIN dimensions AS l ON (p.id = l.product_id AND l.name = 'length') 
LEFT JOIN dimensions AS w ON (p.id = w.product_id AND w.name = 'width') 
LEFT JOIN dimensions AS h ON (p.id = h.product_id AND h.name = 'height') 
+0

Большое спасибо за Ваш ответ! – nish

Смежные вопросы