显示多个MySQL表中的数据

时间:2011-05-06 12:35:47

标签: php mysql tabular

我有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 个答案:

答案 0 :(得分:4)

Lemme从图书推荐开始:SQL Antipatterns。你需要它,如果你引起了这个混乱或者只是分配来修复它就没关系。

如果我在你的位置,首先要做的就是修复数据库结构。这太疯狂了。您不需要每年的新表和每个公司的新列。数据库不是Excel电子表格的一种形式。

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

PK - 主键和FK - 外键。

这种结构将使收集信息变得更加容易。

答案 1 :(得分:0)

如果您只是想显示数据而不担心重组,您可以使用JOIN显示所有表格中的信息。

虽然我同意teresko你真的需要重新设计该数据库。它不可维护。