Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 有没有办法将这3个SQL查询组合在一起?_Mysql_Sql - Fatal编程技术网

Mysql 有没有办法将这3个SQL查询组合在一起?

Mysql 有没有办法将这3个SQL查询组合在一起?,mysql,sql,Mysql,Sql,目前我有3个独立的查询,我正试图将它们组合在一起,这样效率更高 我将它们放在一起的原因是,我可以按submitdate对所有结果进行排序,从现在起,它们按submitdate排序,但由每个查询分隔 首先是 获取我评论过的所有有新评论的帖子的查询 二是 获取有关我的帖子的最新回复的查询 三是 获取我的每个帖子的票数的查询 您可以使用UNION将所有查询组合在一起 创建联合的规则 在所有查询中,列的数量和顺序必须相同 数据类型必须兼容 组合这些查询后,您希望在最终输出中包含哪些字段。请根据您的要求

目前我有3个独立的查询,我正试图将它们组合在一起,这样效率更高

我将它们放在一起的原因是,我可以按
submitdate
对所有结果进行排序,从现在起,它们按
submitdate
排序,但由每个查询分隔

首先是

获取我评论过的所有有新评论的帖子的查询

二是

获取有关我的帖子的最新回复的查询

三是

获取我的每个帖子的票数的查询


您可以使用
UNION
将所有查询组合在一起

创建
联合的规则

  • 在所有查询中,列的数量和顺序必须相同
  • 数据类型必须兼容


  • 组合这些查询后,您希望在最终输出中包含哪些字段。请根据您的要求寻找合适的联接。@user4221591我希望在最终输出中包含所有字段。在我弄清楚如何将查询网格化后,我可以对其进行排序。您需要在查询之间使用
    UNION
    。请确保每个查询的字段数和数据类型应相同。@sqluser谢谢您的回答,您能举个例子说明我的代码可能是什么样子吗?这正是我要找的。如果我的列顺序不一样怎么办?它只会在行内显示null,还是会抛出错误?您需要在
    SELECT
    语句中设置
    null
    ,而不是缺少的任何一个。
    SELECT DISTINCT p.*,c.submitdate as MostRecentSubmitDate
    FROM posts p
    INNER JOIN comments c
    ON c.postid = p.id
    WHERE c.submitdate > (
       SELECT MAX(c2.submitdate)
       FROM comments c2
       WHERE c2.postid = c.postid
       AND c2.deviceID = ?
    ) 
    
    SELECT p.PostTitle,p.id AS PostID,c1.id AS CommentID, c1.comment, q.LatestCommentDate, c1.deviceID
    FROM (SELECT c.postid, MAX(c.SubmitDate) AS LatestCommentDate 
    FROM comments c GROUP BY c.postid) q 
    INNER JOIN posts p ON q.postid = p.id and ? = p.deviceiD 
    INNER JOIN comments c1 ON q.LatestCommentDate = c1.submitDate
    
    SELECT * FROM posts
    WHERE DEVICEID = ?
    AND PostVotes > 0
    ORDER BY SUBMITDATE
    
    query 1
    
    UNION
    
    query 2
    
    UNION
    
    query 3
    
    ORDER BY ...