mysql - SQL - 查询后重命名字段

标签 mysql sql

我遇到了麻烦,但我确信这里有人知道解决办法

我有 2 个表,例如 USERSISSUES。在 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/

相关文章:

SQL Server : "Conversion failed when converting datetime from character string."

sql - 如何在 SQL Server 中创建接受一列数据的函数?

MySql查询图数据组-按列中的数据过滤

mysql - Laravel 4.2 Eloquent 关系 leftjoin ON 复杂

无论我做什么,PHP 都会将变量设置为数组?

mysql - Searchkick 使用 DateTime 查询的语法是什么

mysql - 我想将第一个 SQL 表中的数据插入到第二个 SQL 表中,并且第二个 SQL 表中不存在额外的列

c# - 如何使 linq to entities 或 dbcontext 在插入语句中使用输出?

sql - SQL Server 中的动态 SELECT TOP @var

MySQL LOAD DATA INFILE 不起作用,并且接收表没有约束