如何使用JOIN或其他操作优化此mySQL查询?

如何使用JOIN或其他操作优化此mySQL查询?,mysql,optimization,Mysql,Optimization,请原谅这个新手的问题,但我对mySQL还是相当陌生的…只是让事情运行起来很棘手。我只是花了几个小时写了这个怪物: SELECT orders_comments.orderID, orders_comments.mediaID, orders_comments.imageURL, orders_comments_comments.comment FROM orders_comments JOIN orders_comments_comments ON orders_co

请原谅这个新手的问题,但我对mySQL还是相当陌生的…只是让事情运行起来很棘手。我只是花了几个小时写了这个怪物:

SELECT orders_comments.orderID, orders_comments.mediaID, orders_comments.imageURL, orders_comments_comments.comment
    FROM orders_comments 
    JOIN orders_comments_comments 
    ON orders_comments.orderID = orders_comments_comments.orderID
    JOIN 
    (
        SELECT DISTINCT orderID
        FROM 
        (
            SELECT * FROM orders_comments
            WHERE orders_comments.orderID NOT IN 
            ( 
                SELECT log_comments.orderID 
                FROM log_comments 
                JOIN users_comments 
                ON (log_comments.userID = users_comments.userID) 
                WHERE users_comments.userID = :userID 
            )
            AND orders_comments.userID != :userID 
        ) validOrders
        ORDER BY orderID ASC 
        LIMIT :numOrdersToReceive
    ) distinctOrders
    ON orders_comments.orderID = distinctOrders.orderID

我已经读到子查询通常不是很好,使用连接操作可以做得更好,但是这个查询的复杂性让我感到很失望。快速浏览一下,是否有任何明显的改进?

如果您展示示例数据和查询的实际功能,会更容易。请阅读此[讨论][1]关于联接和子查询[1]:juergen d,是否有一种在线显示表格式的简单方法?