Mysql Denodo/SQL-WHERE子句中AND或的多个条件
我在Dendo中的两个表上筛选票证,这些表记录了对票证所做的所有操作的历史记录。我想看到的是列关键字为Null,列模板不是“temp~”。我能够完美地达到第一个条件,但第二个条件却不能。该列中不再有行返回'temp~',但由于它是历史表,它确实会返回对票证执行的其他操作,例如save、done、complete,因此它仍然会返回我尝试筛选的票证号,而我不希望这些操作Mysql Denodo/SQL-WHERE子句中AND或的多个条件,mysql,sql-server,denodo,Mysql,Sql Server,Denodo,我在Dendo中的两个表上筛选票证,这些表记录了对票证所做的所有操作的历史记录。我想看到的是列关键字为Null,列模板不是“temp~”。我能够完美地达到第一个条件,但第二个条件却不能。该列中不再有行返回'temp~',但由于它是历史表,它确实会返回对票证执行的其他操作,例如save、done、complete,因此它仍然会返回我尝试筛选的票证号,而我不希望这些操作 SELECT A.ticket_number, A.created_on, A.keywords, B.Action FROM
SELECT A.ticket_number, A.created_on, A.keywords, B.Action
FROM table1 AS A LEFT JOIN
(SELECT MAX(action) as Action, ticket_number
FROM table2 GROUP BY ticket_number) AS B on A.ticket_number= B.ticket_number
WHERE created_on>= '2019-04-15' AND(NOT B.Action= 'Templates~' AND A.keywords IS NULL)
从提供的信息来看,结果似乎是正确的 查询的WHERE条件为:
其中创建时间>='2019-04-15'和(非B.templates='templates~'和A.keywords为空)
当前结果的所有行都满足此条件。就是
- 在上创建的
等于或大于
2019-04-15
- 子查询
的B
的值为非templates
null
的值为关键字
null
WHERE NOT B.Action='Templates~'
是的,它将删除在Action下标记为Templates的票证,但在Action列下有“save”和“in progress”的同一票证仍将显示。@Jonathan,我想你必须使用子查询来实现这一点。我猜类似于WHERE created\u on>=“2019-04-15”和A.keywords为空,ticket\u编号不在(选择ticket\u编号,其中Action='Templates~”)
Actual table:
ticket_number | created_on | keywords | Action
ticket1 | 2019-04-15 | dog | Template1
ticket1 | 2019-04-15 | dog | Save
ticket2 | 2019-04-17 | NULL | no_temp
ticket3 | 2019-04-20 | NULL | no_temp
ticket2 | 2019-04-17 | NULL | no_temp
Current results:
ticket_number | created_on | keywords | Action
ticket1 | 2019-04-15 | NULL | Save
ticket2 | 2019-04-17 | NULL | working
ticket3 | 2019-04-20 | NULL | Save
ticket2 | 2019-04-17 | NULL | complete
Expected results:
ticket_number | created_on | keywords | Action
ticket2 | 2019-04-17 | NULL | no_temp
ticket3 | 2019-04-20 | NULL | no_temp