2011-12-25 65 views
0

我有兩個表格,對於這個例子,我打算稱他們爲「內容」和「喜歡」。 「內容」包含多個條目(每個條目都像名言或某種性質)。兩個表,按num行排序;結合?

該網站允許用戶點擊一個類似的按鈕,因此,一個條目被插入到「likes」表中,其中來自「content」表的相應ID,因此可以追溯到。

我希望編寫一個查詢,將「內容」表的內容按「喜歡」表中的喜好數排序 - 這可能嗎?如果是這樣,怎麼樣?

非常感謝和節日快樂(第二部分適用即使問題仍然沒有得到解決)

回答

1

是的,它可能寫出這樣的查詢。

SELECT count(*) as total, content.* 
FROM content, likes 
WHERE content.id = likes.id 
GROUP BY total 
ORDER BY total desc 
+0

真的嗎?你能告訴我如何? – 2011-12-25 22:58:03

+0

是的,看編輯 – abcde123483 2011-12-25 23:01:18

1

喜歡的東西:

SELECT c.* 
    FROM Content c, Likes l 
WHERE c.Content_Id = l.Content_Id 
GROUP BY c.Content_Id 
ORDER BY COUNT(*) DESC 
1

要顯示由喜歡的數量排序的報價可以成爲在數據庫上有點緊張的,每次運行一個查詢這樣。你有沒有考慮在引號表中添加一個只記錄喜歡數量的字段?

這樣的話,這樣的查詢就足夠了:

SELECT quote FROM content ORDER BY likes DESC;

這有點創建冗餘,但並不完全。只是一個可供選擇的考慮。

+0

我現在正在這樣做,因爲我認爲它可能是激烈的,我猜在這種情況下,我會保留它。 – 2011-12-25 23:13:42

+1

@KyleJenkins我不知道你是怎麼做的,但如果你還沒有這樣做,你應該使用'INSERT TRIGGER'。 – kba 2011-12-26 00:38:35