gpt4 book ai didi

mysql - 将两个 MySQL 查询合并并共享结果?

转载 作者:行者123 更新时间:2023-11-29 23:20:31 24 4
gpt4 key购买 nike

好的,我有一个疑问:

SELECT *, articles.article_date AS article_date
FROM articles
INNER JOIN thread ON (thread.thread_id = articles.thread_id)
WHERE articles.article_date < 1417987751

此查询获取 articles 表中的所有结果,并将它们与 thread 表中的数据连接起来。正如您所看到的,如果一篇文章没有匹配的线程条目,则无法返回该文章。

现在我还有另一个疑问:

SELECT *, thread.post_date AS article_date
FROM thread
LEFT JOIN articles ON (articles.thread_id = thread.thread_id)
WHERE articles.article_date IS NULL
AND thread.post_date < 1417987751
AND thread.node_id IN ('66','78')

此查询从 thread 表中获取来自节点 6678 的所有结果,这些结果没有匹配的 文章条目。因此,只有在没有匹配的文章条目时,才可以返回并且将会返回线程。理论上,这些查询不应该有匹配的数据。

然后我需要将这两个结果结合起来,并ORDER BYarticle_date LIMIT 5

我该如何去做呢?

最佳答案

看来你可以这样做:

SELECT *, COALESCE (articles.article_date, thread.post_date) AS _article_date
FROM thread
LEFT JOIN articles ON (articles.thread_id = thread.thread_id)
WHERE
(articles.article_date is not NULL AND articles.article_date < 1417987751)
OR (articles.article_date IS NULL
AND thread.post_date < 1417987751
AND thread.node_id IN ('66','78'))
ORDER BY
_article_date
LIMIT 5

关于mysql - 将两个 MySQL 查询合并并共享结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27350399/

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