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



我相信这个问题以前已经被问过了,但是我似乎找不到我要找的确切的东西。

我希望能够做一个正常类型的查询"TransactionsTable"我有,但然后查找并显示'machineDescription'从一个' MachineTable"作为结果的一部分。但是,我需要为发起事务的机器和关闭事务的机器执行两次查找。

还要注意'CreatedId' &'CompletedId' from "TransactionsTable"是我需要用来搜索' MachineTable"中的'machineDescription'的字段,但在这个表中该字段被称为'machineNumber'。

下面是一个table data的例子:-

TransactionsTable

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

machineNumber |  machineDescription |  machineStatus 
---------------------------------------------------------------------
125           |  X100-1             |  ONLINE
126           |  X100-2             |  ONLINE
127           |  Z4000              |  OFFLINE  
---------------------------------------------------------------------

所以我想做一个普通的查询例如:-

SELECT * FROM TransactionsTable WHERE Status = "COMPLETE"AND 'CreatedDate'在' 2022-01-01 '之间和"2022 - 01 - 31 -";

但不知何故,我想查找'machineDescription'为'CreatedId' &'CompletedId',并为每条返回的记录输出它,所以它看起来像这样:-

CreatedId |  CreatedDesc  |  Value | CreatedDate | CompletedId | CompletedDesc | CompletedDate | Status
---------------------------------------------------------------------
125       |  X100-1       |  100   | 2022/01/01  |  127        |  Z4000        | 2022/01/01    | COMPLETE

我假定有一个"JOIN"这句话在某个地方涉及到,但我似乎不能使它工作。

感谢任何帮助。由于

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

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将始终存在)。

最新更新