Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/87.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连接包括连接条件中的属性_Mysql_Sql_Performance_Join - Fatal编程技术网

mysql连接包括连接条件中的属性

mysql连接包括连接条件中的属性,mysql,sql,performance,join,Mysql,Sql,Performance,Join,让我有三个表注释、附件、后代注释 注释有许多注释,即自连接 评论有很多附件 后代注释包含注释的层次结构(父子关系、父子关系) 代码: 我不想使用手术室,因为这不是一个最佳的方式 有任何方法可以替换这行“或atch.comment\u id=com.id”当注释是自引用时,为什么有子注释表?表的结构是什么?您能给这些表提供一些示例数据吗?子代注释表不是多余的吗?你提到评论是自我引用的,因此,我假设在注释表中有CommentId和ParentCommentId列来相互链接注释。或的替代方法是将两个查

让我有三个表注释、附件、后代注释

  • 注释有许多注释,即自连接
  • 评论有很多附件
  • 后代注释包含注释的层次结构(父子关系、父子关系)
  • 代码:

    我不想使用手术室,因为这不是一个最佳的方式


    有任何方法可以替换这行“或atch.comment\u id=com.id”

    当注释是自引用时,为什么有子注释表?表的结构是什么?您能给这些表提供一些示例数据吗?子代注释表不是多余的吗?你提到评论是自我引用的,因此,我假设在注释表中有
    CommentId
    ParentCommentId
    列来相互链接注释。
    的替代方法是将两个查询与
    UNION
    组合。如果没有
    分组依据
    ,则无法获得有意义的
    计数
    ;无法添加
    分组依据
    ,因为将有未分组的列。您试图实现什么?当注释是自引用时,为什么要有后代注释表?表的结构是什么?您能给这些表提供一些示例数据吗?子代注释表不是多余的吗?你提到评论是自我引用的,因此,我假设在注释表中有
    CommentId
    ParentCommentId
    列来相互链接注释。
    的替代方法是将两个查询与
    UNION
    组合。如果没有
    分组依据
    ,则无法获得有意义的
    计数
    ;无法添加
    分组依据
    ,因为将有未分组的列。你想达到什么目的??
    SELECT comments.*, count(attachments.id)
    FROM comments com
    LEFT JOIN descendant_comments dc 
        ON dc.comments_id = com.id
    LEFT OUTER JOIN attachments atch 
        ON (atch.comment_id = dc.child_comment_id OR atch.comment_id = com.id)
    WHERE com.id = 77