You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

按外键出现次数排序:编写SQL查询返回按投票数排序的所有餐厅

解决方案

要实现返回所有餐厅并按获得的投票数排序的需求,我们可以通过**左连接(LEFT JOIN)**关联两张表,再分组统计投票数,具体SQL语句如下:

SELECT 
    r.id,
    r.name,
    r.address,
    COUNT(v.id) AS vote_count
FROM restaurants r
LEFT JOIN votes v ON r.id = v.restaurant_id
GROUP BY r.id, r.name, r.address
ORDER BY vote_count DESC;

关键说明:

  • 使用LEFT JOIN而非INNER JOIN:确保即使没有获得任何投票的餐厅也会被包含在结果中,这类餐厅的vote_count会显示为0
  • COUNT(v.id):统计每个餐厅对应的有效投票记录数(未投票的餐厅对应的v.id为NULL,COUNT会忽略NULL值,得到正确的0)
  • GROUP BY r.id, r.name, r.address:根据餐厅的唯一标识和信息分组,保证每个餐厅只返回一条记录
  • ORDER BY vote_count DESC:按投票数从高到低排序,若需要升序可改为ASC

内容的提问来源于stack exchange,提问作者Igor Meshalkin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 04:45:37