首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在一个表上创建一个MysQL查询,并从第一个表中的字段值中查找第二个表中的字段值

在一个表上创建一个MysQL查询,并从第一个表中的字段值中查找第二个表中的字段值
EN

Stack Overflow用户
提问于 2022-06-22 10:33:23
回答 1查看 19关注 0票数 0

我肯定这是以前问过的,但我似乎找不到我要找的东西。

我希望能够对我拥有的"TransactionsTable“进行一种正常的查询,但是作为结果的一部分,我希望能够查找并显示来自"MachineTable”的'machineDescription‘。但是,对于启动事务的机器和关闭事务的机器,我需要进行两次查找。

还请注意,“CreatedId”和"TransactionsTable“中的'CompletedId‘是我需要用来搜索"MachineTable”中的'machineDescription’的字段,但是在这个表中,这个字段被称为'machineNumber‘。

以下是表数据的一个示例:-

TransactionsTable

代码语言:javascript
复制
CreatedId |  Value |  CreatedDate | CompletedId |  CompletedDate | Status
---------------------------------------------------------------------
125       |  100   |  2022/01/01  |  127        |  2022/01/01    | COMPLETE
126       |  100   |  2022/01/05  |  NULL       |  NULL          | ACTIVE
127       |  100   |  2022/01/12  |  126        |  2022/01/14    | COMPLETE
---------------------------------------------------------------------

MachineTable

代码语言:javascript
复制
machineNumber |  machineDescription |  machineStatus 
---------------------------------------------------------------------
125           |  X100-1             |  ONLINE
126           |  X100-2             |  ONLINE
127           |  Z4000              |  OFFLINE  
---------------------------------------------------------------------

所以我想做一个正常的查询,例如:-

在"2022-01-01“和”2022-01-31“之间选择* FROM TransactionsTable中的Status = "COMPLETE”和'CreatedDate‘;

但不知何故,我想同时查找“machineDescription”和“CreatedId”和“CompletedId”,并为每条记录返回它的输出,所以如下所示:-

代码语言:javascript
复制
CreatedId |  CreatedDesc  |  Value | CreatedDate | CompletedId | CompletedDesc | CompletedDate | Status
---------------------------------------------------------------------
125       |  X100-1       |  100   | 2022/01/01  |  127        |  Z4000        | 2022/01/01    | COMPLETE

我猜想其中包含了一条“联接”语句,但我似乎无法让它发挥作用。

任何帮助都很感激。谢谢

EN

回答 1

Stack Overflow用户

发布于 2022-06-23 21:56:12

您只需要两次加入MachineTable,一次就可以查找每个描述:

代码语言:javascript
复制
select t.CreatedId, m1.machineDescription as CreatedDesc, t.CompletedId, m2.machineDescription as CompletedDesc
from TransactionsTable t
left join MachineTable m1 on m1.machineNumber=t.CreatedId
left join MachineTable m2 on m2.machineNumber=t.CompletedId

(或者,如果总是设置CreatedId/CompletedId,并且machineDescription中的行将始终在那里,则内部联接而不是左连接)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72713910

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档