gpt4 book ai didi

mysql - 一张表 MYSQL 内连接多列

转载 作者:行者123 更新时间:2023-11-29 10:26:36 24 4
gpt4 key购买 nike

我有 2 个不同的表,一个包含类别 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

我尝试了这个查询,但 id 只打印第一个类别名称

SELECT * FROM 'Employee' INNER JOIN category on Employee.cat1 = category.idcat

我可以做些什么来获得结果还是应该更改我的表格?谢谢

最佳答案

SELECT
e.ID
,e.Name
,c1.Name
,c2.Name
,c3.Name
FROM
Employee AS e
LEFT JOIN Category as c1 ON e.cat1 = c1.ID
LEFT JOIN Category AS c2 ON e.cat2 = c2.ID
LEFT JOIN Category AS c3 ON e.cat3 = c3.ID

请注意,您的 Employee 表的结构很差。通常,您将有一个单独的表来保存 EmployeeID + CategoryID 并添加外键。

A many to many tutorial可以在这里找到,应该可以让您更好地了解如何更好地构建表格。

关于mysql - 一张表 MYSQL 内连接多列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48170365/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com