MySQL按ID分类加入ID到详细信息

hoping someone can help. MySQL JOIN statements have never been my strong point and they just hurt my brain trying to figure them out.

I have table which stores ratings of an item in another table, tracked by ID.

What I need to do now though is display a list of items ordered by the ratings, high to low and low to high.

I can get a list of ratings per item, grouped by ID from the ratings table easily enough, but it's getting it JOINed to the items I get stuck on. Not all items have ratings either (yet), and so it would also be beneficial if the combined list didn't just stop at the end of the ratings that do exist.

OK, so here's my grouping statement:

SELECT  `themeID` , SUM(  `rating` ) AS ratings
FROM  `votes` 
GROUP BY  `themeID` 
ORDER BY  `ratings` DESC 

outputs

themeID      ratings    
1             6
3             3
2             2
6             2

Then the details table consists of various info, such as id, filename, name, date etc

Between the two tables, themeID and id are the same which links them. I've looked at some of the other answers to similar queries on SO, but I couldn't get any of the answers to work with my tables/queries (probably because I don't fully grasp JOIN's)

ANy help would be saving me a massive headache!

Just join the two tables and add the aggregation function.

SELECT d.id, d.filename, d.name, IFNULL(SUM(v.rating), 0) AS ratings
FROM details AS d
LEFT JOIN votes AS v ON d.id = v.themeID
GROUP BY d.id

I used LEFT JOIN so this will show the details even if there are no votes.

I have tested in sql server same u can get in Mysql

      DROP TABLE #Item
    create table #Item (ID int identity(1,1),ItemNAme varchar(10))
    INSERT INTO #Item(ItemNAme)
    SELECT   'A'
    UNION ALL
    SELECT   'B'
    UNION ALL
    SELECT   'C'

    DROP TABLE #ItemRating
    create table #ItemRating (ItemID int ,rating int)
    INSERT INTO #ItemRating(ItemID,rating)
    SELECT   3,2
    UNION ALL
    SELECT   2,11
    UNION ALL
    SELECT   1, 3
    UNION ALL
    SELECT   2, 4
    union all
    SELECT   1,5
    UNION ALL
    SELECT   3,12
    UNION ALL
    SELECT   1, 4
    UNION ALL
    SELECT   2, 1

    SELECT m.ItemNAme,SUM(I.rating) as Rating
    FROM #Item m INNER JOIN #ItemRating I ON m.ID=I.ItemID
    group by m.ItemNAme
    ORDER BY SUM(I.rating) asc

    --OR same thing can achive 

    SELECT ItemNAme, Rating 
    FROM ( 
    SELECT m.ItemNAme,SUM(I.rating) as Rating
    FROM #Item m INNER JOIN #ItemRating I ON m.ID=I.ItemID
    group by m.ItemNAme
    )P
    ORDER BY Rating Desc