Отображение данных из нескольких таблиц MySQL - PullRequest
1 голос
/ 06 мая 2011

У меня есть 14 таблиц (по одной на каждый год) с кодом продукта, названием фирмы и номерами счетов.Основная структура таблицы идентична (код продукта, ID), но в названиях фирм могут быть некоторые переменные.

Table2011
| ID | productcode | firm1 | firm2 | firm3 | etc |
| 1  | G-00001     | 2;5;40| 32;67 |       | 150 |
| 2  | G-00005     |       | 50    |       |     |
|etc |             |       |       |       |     |

Table2010
| ID | productcode | firm1 | firm2 | firm3 |etc |
| 1  | G-00001     | 1;10  |       |  55   |    |
| 2  | G-00003     |       | 2     |       |    |
| 3  | G-00005     |       | 50    |  40   |    |
| etc|             |       |       |       |    |

Table2009
...

Столбец Firm1 обычно не равен той же фирме, что и фирма 1 в другой таблице

Я использую редактор таблиц для работы с таблицами (добавление столбцов в таблицу, редактирование значений ...).

Я хотел бы знать, возможно ли достичь результата, как показано ниже.Это выше моих навыков PHP.

Страница продукта G-00001

…
<UL>
<LI>Year 2011: 150etc; 67firm2; 40firm1; 32firm2; 5firm1; 2firm1</LI>
<LI>Year 2010: 55firm3; 10firm1; 1firm1</LI>
<LI>Year 2009: ...</LI>
...
</UL>
…

Ответы [ 2 ]

4 голосов
/ 06 мая 2011

Позвольте мне начать с рекомендации книги: Антипаттерны SQL . Вам это понадобится, не имеет значения, если вы вызвали этот беспорядок или просто назначен исправить это.

Если бы я был на вашем месте, первым делом нужно было бы исправить структуру базы данных. Это безумие. Вам не нужна новая таблица для каждого года и новый столбец для каждой компании. База данных не является формой электронной таблицы Excel.

Invoices             Years          Companies
 -----------------      -------------     ---------------
| product_code PK |    | year_id  PK |   | company_id PK |
| company_id   FK |    | number      |   | title         |
| amount          |     -------------     ---------------
| year_id      FK |
 -----------------

Где PK - первичный ключ и FK - внешний ключ.

Эта структура намного упростит сбор информации.

0 голосов
/ 06 мая 2011

Если вы просто хотите отобразить данные и не беспокоиться о реструктуризации, вы можете использовать JOIN для отображения информации из всех таблиц.

Хотя я бы согласился с Тереско, вам действительно нужно перепроектировать эту базу данных. Это не ремонтопригодно, как оно есть.

...