1
我有一個左連接的SQL查詢,工作得很好。但是,我在訂購結果時遇到困難。如何通過左連接命令SQL查詢
查詢看起來是這樣的:
SELECT SQL_CALC_FOUND_ROWS wp_posts.ID FROM wp_posts INNER JOIN wp_postmeta ON (wp_posts.ID = wp_postmeta.post_id) LEFT OUTER JOIN wp_posts recent ON recent.post_parent = wp_posts.ID AND recent.post_type = 'ticket_reply' AND recent.post_author = wp_posts.post_author WHERE 1=1 AND ((wp_postmeta.meta_key = '_wpas_status' AND CAST(wp_postmeta.meta_value AS CHAR) = 'open')) AND wp_posts.post_type = 'ticket' GROUP BY wp_posts.ID ORDER BY CASE WHEN recent.post_parent IS NULL THEN 0 ELSE 1 END, recent.post_date DESC, wp_posts.post_date DESC LIMIT 0, 20
的查詢工作正常,並正確排序日期明智的。
最後顯示不在交集中的條目(即ticket
類型的沒有ticket_reply
子代的帖子)。我需要先顯示這些內容,然後按原始查詢中顯示的日期顯示其餘內容。
我不確定這個請求是否足夠清楚。如果沒有,請讓我知道需要澄清什麼,我會盡我所能澄清。
不幸的是,這並沒有改變順序。但是,我意識到我可能會留下原始查詢的重要信息:添加了第一個內部聯接。也許這會改變'ORDER BY'行爲。 我編輯了原始的SQL查詢。 – Julien
@Julien您可以發佈一些示例數據,以便我們能夠重現此問題嗎? –
我不確定究竟是什麼樣的最佳數據分享。這是我的wp_posts表的轉儲。它來自我的開發環境,所以它可能會有一些愚蠢的東西。 http://jmp.sh/AZyzf09 這個想法是讓門票先沒有回覆(「我的第三張票」和「我的第一張票」),然後是「我的第二張票」,它有回覆。 – Julien