gpt4 book ai didi

mysql - 如何从相同的两个表运行两个 LEFT 连接,但连接到这些表中的不同字段

转载 作者:行者123 更新时间:2023-11-29 05:32:46 25 4
gpt4 key购买 nike

我有一个信息表,其中包含以下字段;

id, staffMember, lineManager, description

staffMember 和 lineManager 字段返回与具有以下列的用户表中的行 ID 相对应的整数值

id, firstname, surname

我可以使用以下查询返回我的信息表中的信息,用 staffMember 值替换名字和姓氏的 CONCAT:

SELECT information.id, 
CONCAT( users.firstname, ' ', users.surname ) AS staffMember,
information.lineManager,
LEFT(information.description,200) As description
FROM information
LEFT JOIN users
ON ( information.staffMember = users.id )
LIMIT 0 , 30"

但我希望能够做的是重复处理 lineManager 上 staffMember 的值以及同一查询(然后我将其作为 json 字符串传递)中的过程 - 但是,我知道我可以'没有两个 LEFT 连接到同一个表但等同于不同的字段。

如有任何帮助,我们将不胜感激。

最佳答案

听起来你想要这个:

SELECT i.id, 
CONCAT(u1.firstname, ' ', u1.surname) AS staffMember,
CONCAT(u2.firstname, ' ', u2.surname AS lineManager,
LEFT(i.description,200) As description
FROM information i
LEFT JOIN users u1
ON i.staffMember = u1.id
LEFT JOIN users u2
on i.lineManager = u2.id
LIMIT 0 , 30

您只需对 users 表执行两次 LEFT JOIN。一次加入 staffMember,另一次加入 lineManager。通过为表提供不同的表别名,您可以区分表和值。

如果你想更清楚的话:

SELECT i.id, 
CONCAT(staff.firstname, ' ', staff.surname) AS staffMember,
CONCAT(manager.firstname, ' ', manager.surname AS lineManager,
LEFT(i.description,200) As description
FROM information i
LEFT JOIN users staff
ON i.staffMember = staff.id
LEFT JOIN users manager
on i.lineManager = manager.id
LIMIT 0 , 30

关于mysql - 如何从相同的两个表运行两个 LEFT 连接,但连接到这些表中的不同字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13350851/

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