我遇到了麻烦,但我确信这里有人知道解决办法
我有 2 个表,例如 USERS
和 ISSUES
。在 USERS 中,我们说需要 2 列
- ID
- 名字
- 姓氏
在“ISSUES”中,需要 2 列
- ID
- 已分配给 ID
我正在尝试比较和替换输出中的字段。
例如if users.id = issues.assigned_to_id
然后打印'users.firstname而不是
users.id`
任何帮助都会很棒。干杯,伙计们。
编辑;我可以对我需要的内容进行两个查询,第一个是这个;
SELECT assigned_to_id AS Name, COUNT(*) AS Issues FROM issues
WHERE `status_id`=1
OR `status_id`=2
OR `status_id`=4
OR `status_id`=7
OR `status_id`=8
OR `status_id`=9
OR `status_id`=10
GROUP BY `assigned_to_id`
还有这个;
SELECT id, firstname FROM users
现在如果users.id = issues.assigned_to_id基本上使用相应的用户名字而不是id
最佳答案
我在您的示例中没有看到 issues.firstName 列,因此我假设您的意思是 users.firstname
所以用简单的英语表达你的追求......
您想要返回所有问题,并且当问题与用户匹配时返回用户名而不是问题 ID?
如果是这样,那么这应该可以做到(从左到右更改,因为您想要我相信的所有问题)
SELECT coalesce(u.FirstName, to_char(I.ID)) as UserNameOrIssueID
FROM Users U
RIGHT JOIN issues I
on U.ID = I.assigned_to_ID
这里棘手的部分是名字和 ID 可能具有不同的数据类型,因此您必须将 user.id 转换为数据库适当语法中的字符字段...
使用显式转换(我还假设 Issue.ID 是一个数字字段,如果它是字符,那么下面的第二个字段将正常工作,因为它甚至不需要进行隐式转换。
SELECT coalesce(u.FirstName, cast(I.ID as char(30)) as UserNameOrIssueID
FROM Users U
RIGHT JOIN issues I
on U.ID = I.assigned_to_ID
希望隐含的作品:
SELECT coalesce(u.FirstName, I.ID) as UserNameOrIssueID
FROM Users U
RIGHT JOIN issues I
on U.ID = I.assigned_to_ID
关于mysql - SQL - 查询后重命名字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25934928/