我無法理解如何處理我在SQL中想到的東西。我有書籤,以及用戶發佈的關於它們的評論。我爲所有評論使用單個表格。所以我們在書籤和評論之間有一對多的關係。僅顯示一對多選擇中的最佳結果
還有另一張表,作爲中間人,將每個書籤鏈接到它的所有評論。
有兩種類型的評論。建議的書籤標題和一般評論。建議的標題包含標題和說明,而一般性評論僅包含說明。還有一個建議標題的評分系統,這樣主頁就可以爲每個書籤選擇評分最高的標題來顯示。
所以,主要的事情要明確。有BID和URL的書籤表,還有帶有CID,標題,評論和評級的評論表。 BooksNComms是它們之間的連接表。
SELECT comments.title, comments.comment
FROM comments
INNER JOIN booksncomms ON comments.cid=booksncomms.cid
WHERE booksncomms.bid=1
AND comments.title is not null
ORDER BY comments.rating
LIMIT 0, 1;
中得到最好的標題和說明(註釋)一定BID上述作品。我想要做的就是爲上面的工作,比如說10個最新的書籤。
SELECT bookmarks.url, comments.title, comments.`comment`, comments.rating
FROM bookmarks
INNER JOIN booksncomms
ON bookmarks.bid=booksncomms.bid
INNER JOIN comments
ON comments.cid=booksncomms.cid
JOIN (
SELECT bookmarks.bid
FROM bookmarks
ORDER BY bookmarks.datecreated DESC
LIMIT 1
)
AS a
ON a.bid=bookmarks.bid
WHERE comments.title IS NOT NULL
ORDER BY bookmarks.url;
上面給出了10個最新書籤的所有標題。
有沒有一種方法可以爲10個最新書籤中的每一個選擇最高評分標題?
無法讀取的SQL。這是一個約定,SQL關鍵字應該用大寫字母來區分它們。 :( – Shef
編輯我的第二個例子,根據您的指示。對不起。 –
更新我的答案,試試看,並讓我知道它是否有效 – Shef