【发布时间】:2018-02-09 05:49:38
【问题描述】:
我标准化了我的 MySQL 数据库,这使我无法获取准确的数据,实际上我需要获取有关供应商的详细信息。我有 5 张桌子。第一个表是“供应商”,其中我有供应商基本信息,如姓名、电子邮件、地址,如下所示:
| id | name | email | address |
|------------|------------------|----------------------------------
| 1 | Haris | Haris@gmail.com | Abcd Efgh |
|------------|------------------|----------------------------------
| 2 | John | john@gmail.com | Abcd Efgh |
|------------|------------------|----------------------------------
| 3 | Chris | chris@gmail.com | Abcd Efgh |
第二个表“材料”我有一个材料列表,其中我有两个列 id 和材料,如下所示:
| id | materials |
|------------|------------------|
| 1 | Iron |
|------------|------------------|
| 2 | Plastic |
|------------|------------------|
| 3 | Steel |
第三张表是“类别”,其中我有一个类别 id 和类别列表,如下所示:
| id | categories |
|------------|------------------|
| 1 | chair |
|------------|------------------|
| 2 | Table |
|------------|------------------|
| 3 | Glass |
在名为“vendors_materials”的第四个表中,我有供应商 ID、供应商名称和材料代码。
| id | name | material_cod |
|------------|------------------|--------------------
| 1 | Haris | 1 |
|------------|------------------|--------------------
| 1 | Haris | 2 |
|------------|------------------|--------------------
| 3 | Chris | 1 |
在名为“vendors_category”的最后第五个表中,我有供应商 ID、供应商名称和类别代码。
| id | name | category_cod |
|------------|------------------|--------------------
| 2 | John | 1 |
|------------|------------------|--------------------
| 2 | John | 2 |
|------------|------------------|--------------------
| 1 | Haris | 1 |
我想获取供应商的详细信息以及如下所示的材料和类别:
| id | name | email | address | material | category |
|-----|----------|-------------------|-----------------------------------------
| 1 | Haris | Haris@gmail.com | Abcd Efgh | Iron plastic| Chair
|-----|------------------|-----------------------------------------------------|
| 2 | John | john@gmail.com | Abcd Efgh | | Chair table
|-----|------------------|-----------------------------------------------------|
| 3 | Chris | chris@gmail.com | Abcd Efgh | Iron | |
我做了很多尝试来达到我的结果,但都失败了。
【问题讨论】:
-
您应该查看
JOIN。但是,我建议使用供应商id(主键)作为venders_materials和vendors_cateories表中的外键。默认情况下,数字主键不仅是唯一的和索引的,查找速度也会更快。此外,如果您在供应商名称中看到拼写错误,则无需更新多个表。 -
如果您只是做一些研究,也有多个关于此的指南/教程。始终从进行广泛的研究开始,并在发布之前进行一些尝试。