在SQL中按名称替换2个ID

穆罕默德·斯利姆(Mohammad Slim)

我有2个表格,如下所示:

表格1

表2

我想做的是,我想用表2中的名字和姓氏替换表1中的change_builder ID。此外,我想对表2中的change_manager_ID做同样的事情(用第一个和最后一个替换表2的名称)

我的查询如下所示:

SELECT a.change_number, a.title, change_manager_id,change_builder_id, concat(users.first_name,' ', users.last_name) as Manager_Name, concat(users.first_name,' ', users.last_name) as Builder_Name,

(CASE 
WHEN a.change_state_id = '128' THEN 'In Progress'
WHEN a.change_state_id = '127' THEN 'Approved'
WHEN a.change_state_id = '125' THEN 'Pending'
WHEN a.change_state_id = '124' THEN 'Requested'

END) AS Change_State

FROM change_item as a
LEFT JOIN users
ON a.change_manager_id = users.id


WHERE a.change_state_id = 128
OR a.change_state_id = 124
OR a.change_state_id = 125
OR a.change_state_id = 127

输出结果是更改ID的管理员的名字和姓氏,但我也想对构建器进行同样的操作。

我被困住了,任何帮助或暗示将不胜感激。

马可烷

似乎您忘记了可以将一个表两次连接到同一张其他表-每个联接描述了不同的关系。优良作法要求您为每个join子句赋予一个好的相关性名称,以描述关系的作用。

并且,请为正确的类型使用正确的文字。

不是一次change_state_id = '128'(字符串),然后是change_state_id = 124(数字)。隐式转换速度很慢,可能会影响数据质量。

而且我使用了IN()子句,而不是一堆OR-s:

SELECT 
   a.change_number
  ,a.title
  ,change_manager_id
  ,change_builder_id
  ,CONCAT (mgr.first_name,' ',mgr.last_name) AS Manager_Name
  ,CONCAT (bld.first_name,' ',bld.last_name) AS Builder_Name
  ,CASE 
     WHEN a.change_state_id = 128 THEN 'In Progress'
     WHEN a.change_state_id = 127 THEN 'Approved'
     WHEN a.change_state_id = 125 THEN 'Pending'
     WHEN a.change_state_id = 124 THEN 'Requested'
   END AS Change_State
FROM change_item AS a
LEFT JOIN users AS mgr -- join as manager
ON a.change_manager_id = mgr.id
LEFT JOIN users AS bld -- join as builder
ON a.change_builder_id = bld.id
WHERE a.change_state_id IN(128,124,125,127)
    ;

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在magento中按名称搜索产品并获取产品ID的数组

来自分类Dev

在highcharts中按名称或id删除系列

来自分类Dev

用不同数据库中的对应名称替换ID

来自分类Dev

如何从2个不同的表中获取相关ID的名称并显示它们

来自分类Dev

SQL SELECT名称(按ID)

来自分类Dev

SQL查询如何在表中按名称分组

来自分类Dev

替换2个字母中的点

来自分类Dev

按日期对2个Activerecord进行排序-当日期字段在RAILS中为其他名称时

来自分类Dev

SQL在单个查询中从2个不同的ID检索信息

来自分类Dev

熊猫使用数据框名称用ID替换第二个数据框中任何位置的数据

来自分类Dev

如何使用SQL Server替换数据表中的名称

来自分类Dev

SQL查询-替换字段名称中的句点

来自分类Dev

在ExtJs 4.1树面板中按ID或名称查找节点

来自分类Dev

单击JavaScript / JQuery中的按钮(按名称而不是ID)

来自分类Dev

SQL按2列中的一个值分组

来自分类Dev

T-sql脚本替换字符串中的前2个数字

来自分类Dev

按日期对2个Activerecord进行排序-当日期字段在RAILS中为其他名称时

来自分类Dev

SQL按2个字段分组

来自分类Dev

2个表中“名称”列之间的SQL差异函数

来自分类Dev

Javascript按其名称选择一个ID

来自分类Dev

在SQL中按n个参数查询

来自分类Dev

在mysql中插入名称替换id为id

来自分类Dev

Yii2 替换名称中的符号

来自分类Dev

按 2 个 ID 分组的 SQL

来自分类Dev

将 2 个名称与 ID 匹配

来自分类Dev

用名称替换 GROUP_CONCAT 列中的 ID

来自分类Dev

按 SQL 中的 2 个条件排序?

来自分类Dev

如何使用另一个数据数组按 id 或名称过滤数据数组以显示在 React Table 中?

来自分类Dev

SQL 按 2 个条件排序

Related 相关文章

热门标签

归档