gpt4 book ai didi

Mysql联合查询记录结果清空列

转载 作者:行者123 更新时间:2023-11-29 13:13:59 25 4
gpt4 key购买 nike

我有一个联合查询来从两个表中获取最大日期记录

SELECT
id,
MAX(mx) AS max_date,
`assigned_user_id`
FROM (SELECT
id,
MAX(date_due) AS mx,
`assigned_user_id`
FROM tasks
WHERE `deleted` = 0
AND `parent_id` = 'aa6f0330-7a17-572f-94b5-4a5db1a1201f'
AND `parent_type` = 'Accounts'
AND date_due >= CURDATE() UNION SELECT
id,
MAX(date_start) AS mx,
`assigned_user_id`
FROM calls
WHERE `deleted` = 0
AND `account_id` = 'aa6f0330-7a17-572f-94b5-4a5db1a1201f'
AND date_start >= CURDATE()) s

这将查看调用和任务,并为我提供 future 调用或任务,但是当我运行这个并且我有一个 future 调用并且任务较旧时,我在 id 中得到 NULL signed_user_id 列。如何获取 MAX 日期记录的完整信息。

当我运行单独的查询时,第一个查询为空,而第二个查询为记录。

最佳答案

也许我误读了这个问题,或者我遗漏了一些东西 - 在这种情况下,请给我写评论让我知道,我可以完全删除这篇文章。

但是,根据我对你所写内容的理解,你想要:

  1. 使用给定的 parent_idparent_type 获取 tasks 中的单个记录,其中 date_due >= CURDATE() 其中具有最新的date_due
  2. calls 表中获取相同类型的记录(使用 date_start 而不是 date_due)。
  3. 在这两条记录中,找到日期值较晚的一条记录。从该记录中选择 id、日期(如 max_date)和 assigned_user_id

您的查询(和子查询)可以仅按日期降序排序并仅获取第一条记录。

我在想这样的事情......

SELECT id,
mx AS max_date,
`assigned_user_id`
FROM (
SELECT id,
date_due as mx,
`assigned_user_id`
FROM tasks
WHERE `deleted` = 0
AND `parent_id` = 'aa6f0330-7a17-572f-94b5-4a5db1a1201f'
AND `parent_type` = 'Accounts'
AND date_due >= CURDATE()
ORDER BY date_due DESC
LIMIT 1

UNION

SELECT id,
date_start as mx,
`assigned_user_id`
FROM calls
WHERE `deleted` = 0
AND `account_id` = 'aa6f0330-7a17-572f-94b5-4a5db1a1201f'
AND date_start >= CURDATE()
ORDER BY date_start DESC
LIMIT 1
)
ORDER BY max_date DESC
LIMIT 1

关于Mysql联合查询记录结果清空列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21726288/

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