gpt4 book ai didi

mysql - 使用基于其他列的值的临时列进行选择

转载 作者:行者123 更新时间:2023-11-29 02:17:40 25 4
gpt4 key购买 nike

我有一个 mysql 表,其架构类似于下面的 json 数组。

[
{ "id": 1, "firstName": "Charles Montgomery", "lastName": "Burns", "managerId": 12},
{ "id": 2, "firstName": "Bart", "lastName": "Simpson", "managerId": 1},
{ "id": 3, "firstName": "Marge", "lastName": "Simpson", "managerId": 1},
{ "id": 4, "firstName": "Lisa", "lastName": "Simpson", "managerId": 1},
{ "id": 5, "firstName": "Maggie", "lastName": "Simpson", "managerId": 1},
{ "id": 6, "firstName": "Homer", "lastName": "Simpson", "managerId": 4},
{ "id": 7, "firstName": "Ned", "lastName": "Flanders", "managerId": 4},
{ "id": 8, "firstName": "Krusty", "lastName": "The Clown", "managerId": 2},
{ "id": 9, "firstName": "Waylon", "lastName": "Smithers", "managerId": 2},
{ "id": 10, "firstName": "Ralph", "lastName": "Wiggum", "managerId": 5},
{ "id": 11, "firstName": "Itchy", "lastName": "", "managerId": 5},
{ "id": 12, "firstName": "Comic Book Guy", "lastName": "", "managerId": 4}
]

managerId 字段是 id 字段的自引用外键。

我需要进行一个查询,该查询将使用根据 id 字段计算出的“managerName”动态添加列,该字段将包含串联的 firstName 和 lastName。

下面是我试过的(简化的)查询。问号是由 mysql driver 填充的占位符(在 nodejs 中):

SELECT * , 
(SELECT CONCAT_WS(' ', firstName, lastName) FROM employee WHERE managerId = id ) as managerName
FROM employee WHERE employee.id = ?;

我意识到这个 WHERE managerId = id 是要查看的地方,但老实说我不知道​​要放置什么条件才能匹配正确的值。

有人可以帮忙吗?

编辑万一有人偶然发现同样的事情,我发现了 helpful article .连例子都是相似的。

最佳答案

LEFT JOIN 是您的 friend 。 tra 使用这样的查询:

SELECT 
e.*,
CONCAT_WS(' ', m.firstName, m.lastName) AS managerName
FROM employee e WHERE e.employee.id = ?
LEFT JOIN employee m ON e.managerId = m.id;

关于mysql - 使用基于其他列的值的临时列进行选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37115677/

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