Mysql sql请求问题,多个ID

Mysql sql请求问题,多个ID,mysql,Mysql,我有这两个表,我需要从ENT表中选择所有内容,并显示技能的名称,而不是ID 技能1、技能2、技能3参考技能表中的idSkill 谢谢你的帮助 Ent表格: +-------+---------+---------+---------+---------+ | idEnt | nameEnt | skill_1 | skill_2 | skill_3 | +-------+---------+---------+---------+---------+ | 1 | testA |

我有这两个表,我需要从ENT表中选择所有内容,并显示技能的名称,而不是ID

技能1、技能2、技能3参考技能表中的idSkill

谢谢你的帮助

Ent表格:

+-------+---------+---------+---------+---------+
| idEnt | nameEnt | skill_1 | skill_2 | skill_3 |
+-------+---------+---------+---------+---------+
|     1 | testA   |       1 |      2  |      3  |
|     2 | testB   |       4 |      5  |      6  |
+-------+---------+---------+---------+---------+
+---------+-------------+
| idSkill |  nameSkill  |
+---------+-------------+
|       1 | Storekeeper |
|       2 | Designer    |
|       3 | Teacher     |
|       4 | Baker       |
|       5 | Gardener    |
|       6 | Secretary   |
+---------+-------------+
技能表:

+-------+---------+---------+---------+---------+
| idEnt | nameEnt | skill_1 | skill_2 | skill_3 |
+-------+---------+---------+---------+---------+
|     1 | testA   |       1 |      2  |      3  |
|     2 | testB   |       4 |      5  |      6  |
+-------+---------+---------+---------+---------+
+---------+-------------+
| idSkill |  nameSkill  |
+---------+-------------+
|       1 | Storekeeper |
|       2 | Designer    |
|       3 | Teacher     |
|       4 | Baker       |
|       5 | Gardener    |
|       6 | Secretary   |
+---------+-------------+

使用此表结构,您需要在
ent
表上加入
skill
表3次,每次使用不同的别名:

select idEnt, nameEnt, s1.nameSkill as skill1Name, s2.nameSkill as skill2Name, s3.nameSkill as skill3Name
from ent e
inner join skill s1 on e.skill_1=s1.idSkill
inner join skill s2 on e.skill_2=s2.idSkill
inner join skill s3 on e.skill_3=s3.idSkill

您可能需要考虑更改表结构,并在<代码> ENT/CODE >和Teals表之间拥有一个连接IDON-IDITER对的表。

您是否考虑过使用一个单独的ET技能表?这样不仅查询会更容易,而且您会有更大的灵活性。我可能错了,但似乎不太可能每个“Ent”都有3个技能。再次抱歉,如果我还想为每个技能选择技能id,我该怎么办?只需将该字段包含在选择列表中即可。但是,您确实应该考虑改变现有的数据结构,并在2个表之间创建连接器表。您越晚进行此更改,其难度就越大。