gpt4 book ai didi

sql - 单表无记录时的多表查询

转载 作者:行者123 更新时间:2023-11-29 12:13:59 25 4
gpt4 key购买 nike

如果我想,我应该怎么做:

目前有A表和B表,

A:
id, name, address //the id is unique
B
id, contact, email

由于一个人可能有多个联系人和邮箱,或者没有联系人和邮箱(即表B中没有记录)

现在我想统计每个id有多少记录,即使是0:结果将如下所示:

id, name, contact_email_total_count

我该怎么做(目前我唯一想不通的地方是如何计算0条记录,因为表B中没有记录)?

最佳答案

对于这种情况,您需要使用 LEFT JOIN,然后添加聚合和 GROUP BY:

select a.id, 
a.name,
count(b.id) as contact_email_total_count
from tablea a
left join tableb b
on a.id = b.id
group by a.id, a.name

参见 SQL Fiddle with Demo

如果您在学习连接语法方面需要帮助,这里有很棒的 visual explanation of joins .

根据您的评论,典型的 order of execution如下:

  1. FROM
  2. ON
  3. JOIN
  4. WHERE
  5. GROUP BY
  6. HAVING
  7. SELECT
  8. ORDER BY

关于sql - 单表无记录时的多表查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14264389/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com