首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mySQL:用varchar的值连接两个表

mySQL:用varchar的值连接两个表
EN

Stack Overflow用户
提问于 2015-08-05 15:48:00
回答 1查看 24关注 0票数 0

嗨,我需要帮助,试图找出如何连接两个表,并从varchar检索值作为外键。该表与下表相似。

Table_Contractor

TraderID- -Name- -Skill_ID

1---乔--- 1,2,3,4

鲍勃,1,3

汤姆,4,3,1

Table_Trade

Skill_ID- -Skill_Title

水管工

2- -- -Bricklayer

3- -- -Electrician

4- -- -Plasterer

我希望能够选择TraderId和名称,并显示技能的名称,而不是Skill_ID

TraderID- -Name- -技能

水管工,砖匠,电工,粉刷工

2

3

EN

回答 1

Stack Overflow用户

发布于 2015-08-05 16:03:15

如果您可以更改表的结构,我强烈建议使用以下表格:

  • 承包商: id,姓名
  • contractor_skill: contractor_id,skill_id
  • 技能: id,标题

你可以很容易地得到你想要的结果:

代码语言:javascript
复制
   SELECT c.id, c.name, GROUP_CONCAT(s.title) skills
     FROM contractor c
LEFT JOIN contractor_skill cs
       ON cs.contractor_id = c.id
LEFT JOIN skill s
       ON s.id = c.skill_id

使用当前的结构,要加入表,您需要从每个承包商的csv列表中提取每个skill_id,并将其加入到相关技能中。MySQL不是为此而建的。此外,添加、删除或排序承包商的技能等操作也会变得非常混乱。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31837159

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档