У меня есть три таблицы. Фу, Аттриб, ФуАттриб. Где FooAttrib - это мост между foo и attrib. Как вы можете видеть, в таблице много foo и много атрибутов.
Foo FooAttri Attrib
------------ ----------------------------- --------------
| id | Name | | fooId | attribId | value | | id | Descrip |
|----|-------| |---------|-----------|-------| |----|---------|
| 1 | Sam | | 1 | 1 | red | | 1 | Color |
| 2 | Bill | | 1 | 2 | Grape | | 2 | Flavor |
| 3 | Ted | | 2 | 1 | Blue | | 3 | Weight |
------------ | 3 | 3 | 10 | --------------
| 1 | 3 | 5 |
| 2 | 3 | 1 |
-----------------------------
Я знаю, как получить следующее:
fooId Name Attrib Value
1 Sam Color red
1 Sam Flavor Grape
1 Sam Weight 5
2 Bill Color Blue
2 Bill Weight 1
3 Ted Weight 10
Но я хочу знать; Можно ли построить оператор select так, чтобы я получал все данные foo и attrib, возвращенные в одном наборе результатов, который выглядит следующим образом?
fooId Name Color Flavor Weight
1 Sam red Grape 5
2 Bill Blue 1
3 Ted 10