я в настоящее время это утверждение ...SQL Server: Группа INNER JOIN в Колонном
SELECT *
FROM stock AS s
INNER JOIN stock_attributes AS sa ON sa.stock_code = s.stock_code
Это выводит информацию, как это ...
| stock_code | attribute name | attribute value |
|------------|----------------|-----------------|
| ABC01 | color | red |
| ABC01 | size | small |
| ABC01 | price | 10.0 |
| XYZ99 | color | blue |
| XYZ99 | size | large |
| XYZ99 | price | 50.0 |
Однако я хочу, чтобы выглядеть следующим образом
| stock_code | color | size | price |
|------------|----------------|-----------------|------------------|
| ABC01 | red | small | 10.0 |
| XYZ99 | blue | large | 50.0 |
Я нашел много примеров этого на SO, но они кажутся чрезвычайно точными со сложными примерами и была уверена, что функция будет существовать для того, чего я пытаюсь достичь выше.
В настоящее время я достигаю этого с несколькими INNER JOIN
s с SELECT
в каждом из них, чтобы выбрать имена атрибутов, однако это необходимо вручную изменить, когда создаются новые имена атрибутов.
Большое спасибо заранее!
Вот почему таблицы атрибутов - плохая идея, их сложно запросить. То, что вам действительно нужно сделать, - это правильно отредактировать вашу базу данных. Таблицы EAV предназначены только для вещей, которые вы не можете процитировать во время деагининга, и если вам нужно много информации в них, вы не должны использовать реальную базу данных вообще. Их не только сложно запросить, они могут быть убийцами производительности. – HLGEM
Посмотрите на google: сводные таблицы. –
* однако это требует внесения изменений вручную при создании новых имен атрибутов * Не так много можно сделать. Это одна из затрат на дизайн атрибутов Entity Attribute. Вам нужно будет либо выполнять динамические запросы, либо генерировать код при добавлении атрибута –