我正在使用MySQL和数据库服务器,我有两个表,一个用于客户,另一个表用于 customer_contacts 。 以下是表格结构:
customer(
id(pk, ai)
name
email
)
和
customer_contacts(
id(ai)
customer_id
first_name
last_name
)
现在我的问题是:
假设我有一个客户有很多像这样的customer_contacts
customer
id name email
1 john john@example.com
和customer_contacts是这样的(第一行)
id customer_id first_name last_name
1 1 john doe
2 1 johnp pual
像这样
所以在这里我想得到id john的所有联系方式。有人可以告诉我如何得到它吗?
任何帮助和建议都会非常明显。
感谢
答案 0 :(得分:0)
只需加入两个表,然后使用count()
group by c.id
使用where过滤记录
select c.*,
count(*) total_contacts
from customer c
left join customer_contacts cc on(c.id = cc.customer_id)
group by c.id
Fiddle Demo
答案 1 :(得分:0)
如果id已经知道(正如问题所示,它将是一个简单的
SELECT COUNT(*) from customer_contacts
WHERE customer_contacts.id = 1;
答案 2 :(得分:0)
您只需知道客户John的联系人数量,对吗?
SELECT COUNT(*)
FROM customer cus INNER JOIN customer_contacts con ON cus.id = con.customer_id
WHERE cus.name = 'john'
然而,如果你知道约翰的身份会更好。您的查询将是:
SELECT COUNT(*)
FROM customer_contacts
WHERE customer_id = 1