gpt4 book ai didi

javascript - 如何获得2个mysql查询的交集?

转载 作者:行者123 更新时间:2023-11-29 18:27:37 26 4
gpt4 key购买 nike

假设我有一个如下所示的 MySQL 表:

enter image description here

表中的每个作业包含 3 个任务。

我怎样才能获得所有JobIdtaskA位于Done状态和taskB位于New状态?

就我而言,我想要一个返回 qwert 的查询,和zxcv .

我提出了这个查询:

select JobId from MyTable where TaskSeq=0 and TaskState='Done'
intersect
select JobId from MyTable where TaskSeq=1 and TaskState='New';

但是我的MySQL版本不支持intercept运算符。

我的最终目标是将查询写入 sequelize 。但我认为我应该首先了解 MySQL 查询,以便我可以创建 sequlize 查询。

而且我还希望序列化查询可以在 1 个函数中完成,而不是用 then 连接多个函数。 .

这是SQL Fiddle帮助您尝试该表。

最佳答案

您可以只使用联接:

select mt.JobId 
from MyTable mt
join MyTable mt2 on mt2.JobId = mt.JobId
where mt.TaskSeq = 0 and mt.TaskState = 'Done' and mt2.TaskSeq = 1 and mt2.TaskState = 'New'

这是对该查询进行 Sequelize 的尝试,但这只是一个猜测。希望它能为您提供一些有用的东西:

MyTable.findAll({
attributes: ['JobId', 'TaskSeq', 'TaskState'],
include: [{
model: MyTable,
attributes: ['JobId', 'TaskSeq', 'TaskState'],
where: {
JobId: Sequelize.col('MyTable.JobId'),
TaskSeq: 1,
TaskState: 'New'
}
}],
where {
TaskSeq: 0,
TaskState: 'Done'
}
});

关于javascript - 如何获得2个mysql查询的交集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46029882/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com