您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

用不同的键将同一张桌子连接两次

用不同的键将同一张桌子连接两次

使用类似

select accounts.id, 
    count(distinct s1.id) as num_req, 
    count(distinct s2.id) as num_grab
from accounts left join subs as s1 on accounts.id = s1.requester_account_id
    left join subs as s2 accounts.id = s2.grabber_account_id
group by accounts.id

诀窍是使用表subs两次:subs as s1subs as s2,每次由不同的字段联接。

关于效率的注意事项:我不确定,但是我相信这个解决方案比子查询解决方案要快,尽管没有对其进行测试(至少不会慢一些)。left join只要有可能,我总是更喜欢子查询

其他 2022/1/1 18:29:30 有585人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶