我有两个不同的表,一个带有类别id和名称,另一个带有我的员工信息。员工可以拥有更多类别。
表格示例:
类别表:
IDCAT | Name
----------
1 | Mechanic
2 ! Office
3 | Generic Mechanic
员工表:
ID | Name | cat1 | cat2 | cat3
--------------------------------------------
1 | Mechanic | 1 | 2 |
2 ! Office | 1 | 3 |
3 | Generic Mechanic | 1 | 2 | 3
我想用mysql打印这样的表,这样我就可以在php脚本中打印它:
ID | Name | cat1 | cat2 | cat3
--------------------------------------------------------------------------------
1 | Mechanic | Mechanic | Office |
2 ! Office | Mechanic | Generic Mechanic |
3 | Generic Mechanic | Mechanic | Office | Generic Mechanic
我尝试了这个查询,但我只打印第一个类别名称
SELECT * FROM 'Employee' INNER JOIN category on Employee.cat1 = category.idcat
我能做些什么来得到我的结果吗?或者我应该换张table吗?谢谢
2条答案
按热度按时间vfhzx4xs1#
您应该规范化表employee,避免在类别中使用多个列,例如:
基于此模式,您可以使用groupconcat在一行中获取与员工相关的所有类别
fgw7neuy2#
请注意,employee表的结构很差。通常,您会有一个单独的表来保存employeeid+categoryid并添加外键。
在这里可以找到一个多对多的教程,它可以让您更好地了解如何更好地构造表。