开发者

Counting the most amount of items assigned to a user using greatest

I am trying to query 5 separate tables in my mysql database, and display the actor with the most amount of items assigned to them. The table structures are as follows;

item
itemid | item | description | brand | date | time | path |

actor
ac开发者_JAVA百科torid | name | actorthumb | bio |

brand
brandid | brandname | description | image |

movie
movieid | title | genre | year | moviethumb | synopsis|

request
requestid | userid | itemid | brandid | movieid | actorid | content | requestdate |

I presume I need to join the request, actor and items table together, using COUNT function count how many items are assigned to an actor, then use GREATEST to display the actor with the highest amount of items assigned to them?

The query to join all the tables is 
$query = "SELECT greatest i.*, a.*, b.*, m.*, r.* FROM item AS i, actor AS a, brand AS    b, movie AS m, request AS r
    WHERE r.itemid = i.itemid 
    AND r.actorid = a.actorid
    AND r.brandid = b.brandid
    AND r.movieid = m.movieid";

Please confirm the best way to do the above?


SELECT a.actorid, a.name
    FROM request r
        INNER JOIN actor a
            ON r.actorid = a.actorid
    GROUP BY a.actorid, a.name
    ORDER BY COUNT(DISTINCT r.itemid) DESC
    LIMIT 5


The query to join all the tables is 
$query = "SELECT i.*, a.*, b.*, m.*, r.* FROM item AS i, actor AS a, brand AS    b, movie AS m, request AS r
    WHERE r.itemid = i.itemid 
    AND r.actorid = a.actorid
    AND r.brandid = b.brandid
    AND r.movieid = m.movieid
    ORDER BY count(i.*) DESC";
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜