显示多个MySQL表中的数据

问题描述 投票:1回答:2

我有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>
…
php mysql tabular
2个回答
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 - 外键。

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


0
投票

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

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

© www.soinside.com 2019 - 2024. All rights reserved.