![](/img/trans.png)
[英]mysql join tables in which field from 1st table as multiple value in second table
[英]Create a MysQL Query on one table and also lookup the value of a field in a second table from field values in 1st table
我确定以前有人问过这个问题,但我似乎无法找到我正在寻找的确切内容。
我希望能够对我拥有的“TransactionsTable”进行正常的查询,然后从“MachineTable”中查找并显示“machineDescription”作为我的结果的一部分。 但是,我需要对启动事务的机器和关闭事务的机器进行两次查找。
另请注意,“TransactionsTable”中的“CreatedId”和“CompletedId”是我需要用于在“MachineTable”中搜索“machineDescription”的字段,但在此表中,该字段称为“machineNumber”。
这是表格数据的示例:-
事务表
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
---------------------------------------------------------------------
机台
machineNumber | machineDescription | machineStatus
---------------------------------------------------------------------
125 | X100-1 | ONLINE
126 | X100-2 | ONLINE
127 | Z4000 | OFFLINE
---------------------------------------------------------------------
所以我想做一种普通的查询,例如:-
SELECT * FROM TransactionsTable WHERE Status = "COMPLETE" AND 'CreatedDate' BETWEEN "2022-01-01" AND "2022-01-31";
但不知何故,我想同时为“CreatedId”和“CompletedId”查找“machineDescription”,并为返回的每条记录输出它,所以它看起来像这样:-
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 中的行将始终存在,则使用内部联接而不是左联接)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.