简体   繁体   English

加入2个mysql表并按1个表中相同行的数量排序

[英]Joining 2 mysql table and ordering by number of same rows in 1 table

I need some help with a mysql query. 我需要一些mysql查询的帮助。

I have 2 tables, 我有2张桌子,

Table 1 - Photos (photo_id, photo_url) 表1 - 照片(photo_id,photo_url)

1----- www.someurl.com 1 ----- www.someurl.com
2----- www.someurl.com 2 ----- www.someurl.com
3----- www.someurl.com 3 ----- www.someurl.com
4----- www.someurl.com 4 ----- www.someurl.com

Table 2 - Favorites (favorite_id, user_id,photo_id) 表2 - 收藏夹(favorite_id,user_id,photo_id)

1-------5------1 1 ------- ------ 5 1
2-------5------2 2 ------- ------ 5 2
3-------6------1 3 ------- ------ 6 1
4-------6------3 4 ------- ------ 6 3
5-------7------2 5 ------- ------ 7 2
6-------7------3 6 ------- ------ 7 3
7-------8------3 7 ------- ------ 8 3
7-------8------4 7 ------- ------ 8 4

I want to get results from photos table ordering by the favorite numbers of users. 我希望从喜欢的用户数量中获得照片表排序的结果。

Correct ordering must be: 正确的订购必须是:

1) Photo-3 (3 votes) 1)Photo-3(3票)
2) Photo-2 (2 votes) 2)Photo-2(2票)
2) Photo-1 (2 votes) 2)Photo-1(2票)
2) Photo-4 (1 vote) 2)Photo-4(1票)

SELECT  a.photo_url, COUNT(b.photo_ID) totalVotes
FROM    table1 a
        LEFT JOIN table2 b
            ON a.photo_ID = b.photo_id
GROUP BY a.photo_url
ORDER BY totalVotes DESC

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM