【问题标题】:Count result of Sub-query and Use it in Query统计子查询的结果并在查询中使用
【发布时间】:2017-01-10 09:42:28
【问题描述】:

我有两个表 information_business 和 business_likes。

Table-1 :- information_business 有字段id , name , address , dt_added 等。

Table-2 :- business_likes 有字段id , business_id , user_id , status(1=> like , 0 => unlike)

如果有人喜欢一家企业,我将在 business_likes 表中插入新数据作为 business_id、user_id 和 status = 1,并且如果同一个人不喜欢该行,则更新该行。

现在我的问题是我想选择所有点赞数最高的商家,点赞数最低的商家在最后。

如果任何企业的计数为零,则所有计数为零的企业都排在最后。

我尝试了很多查询,但对我没有任何帮助。

查询:

SELECT *, (SELECT COUNT(status)
FROM business_likes) AS business_likes_count
FROM `business_likes`
LEFT JOIN information_business ON information_business.id = business_likes.business_id
ORDER BY business_likes.id

【问题讨论】:

    标签: mysql


    【解决方案1】:

    试试这个 sql:如果你想把最高值放在第一位,你可以使用 group by on business idORDER BY business_likes_count DESC

         SELECT information_business.*,COUNT(status) as business_likes_count FROM `business_likes` JOIN information_business 
    ON information_business.id= business_likes.business_id group by  business_likes.business_id ORDER BY business_likes_count DESC;
    

    【讨论】:

    • 是的,只要允许,我会的;)
    • 这不会选择计数为零的企业。如果任何企业的计数为零,则所有计数为零的企业都排在最后。它只选择有计数的企业。
    • 然后你可以把`join改成left join`然后用group by information_business.id试试。
    猜你喜欢
    • 2016-09-01
    • 2012-06-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-06
    • 2014-07-04
    • 2018-01-10
    相关资源
    最近更新 更多