2016-04-14 96 views
-1

我有id(int(10) key), user_id(varchar(15)), post_id(varchar(15))「user_likes」表並用post_id(int(15) key), user_id(varchar(15)), post_txt(text)訂購不同表的行

「user_post」表我現在ID順序帖子:

$que_posts = mysql_query("select * from user_post order by user_id DESC"); 

我想通過量來訂購吧喜歡每個帖子(即喜歡更多喜歡的帖子將是第一個)。

問題是LIKES在不同的表中。我該怎麼做?

使用sef4eg的答案(有改動)我可以修復它

編輯 - 我:

"SELECT user_post.*, COUNT(user_likes.post_id) AS like_count 
          FROM user_post LEFT JOIN user_likes 
          ON user_post.post_id = user_likes.post_id 
          GROUP BY user_post.post_id 
          ORDER BY like_count desc;"; 
+0

使用也許JOINS ? – Maximus2012

+0

U可以嘗試加入... MYSQL_ *已棄用,並在PHP 7中關閉...使用mysqli_ *或PDO – devpro

+0

同樣作爲建議,您不應該爲user_likes表指定user_id,因爲post_id本身就像外鍵一樣行動 –

回答

1

現在,你在你的選擇有like_count所以你顯示它,如果你需要

SELECT user_post.*, COUNT(user_likes.id) as like_count 
FROM user_post 
LEFT JOIN user_likes 
ON user_likes.user_id = user_post.user_id AND user_likes.post_id = user_post.post_id 
GROUP BY user_post.post_id 
ORDER BY like_count DESC 
+0

它確實顯示我的帖子,但在id序,而不是喜歡 –

+0

我認爲這是一個數據問題,sql查詢絕對應該按類似記錄的數量排序記錄不是id –

+0

我解決了它,你可以看到我的編輯在我的問題 –