gpt4 book ai didi

mysql - 连接中的 SQL 计数

转载 作者:行者123 更新时间:2023-11-29 23:28:43 26 4
gpt4 key购买 nike

我只是想计算一下(每个客户的汽车数)

所以我尝试这样:

SELECT tbl_Clients.FirstName, tbl_Clients.LastName, tbl_Clients.Phone,
COUNT(*) AS VehiculeTotal
FROM tbl_Contrat
INNER JOIN tbl_Clients ON tbl_Contrat.Client = tbl_Clients.ID
GROUP BY tbl_Contrat.Client

简单的方法:

SELECT FirstName, LastName, Phone, COUNT(*) AS VehiculeTotal
FROM tbl_Clients, tbl_Contrat GROUP BY Client

但看起来我也遇到了同样的问题:

Column 'tbl_Clients.FirstName'(LastName and phone too) is invalid in the 
select list because it is not contained in
either an aggregate function or the GROUP BY clause.

但不想按它们分组

我还需要显示名字、姓氏和电话!

请帮忙

最佳答案

当您使用分组依据时,结果将根据分组依据的列划分为唯一的组。在您的情况下, tbl_client.id 应该是唯一的,因此分组依据中使用的任何其他列不是唯一的也没关系。假设您有两个名为 John Doe 的客户端,客户端 ID 为 1 和 2,则分组仍会根据 ID 将它们分开,并且不会发生进一步的分组。

此查询应该执行您想要的操作。我冒昧地为表名使用了别名,以使其更短、更易读。

SELECT cli.FirstName, cli.LastName, cli.Phone, COUNT(*) AS  VehiculeTotal
FROM tbl_Contrat con
INNER JOIN tbl_Clients cli ON con.Client = cli.ID
GROUP BY cli.id, cli.FirstName, cli.LastName

请注意,通过使用内部联接,您将消除由于某种原因可能没有任何汽车的任何客户,这当然可以,但如果您想返回没有任何汽车的客户,您应该这样做使用左连接代替,如下所示:

SELECT id, firstname, lastname, COUNT(tbl_Contrat.Client) AS VehiculeTotal
FROM tbl_Clients
LEFT JOIN tbl_Contrat ON tbl_Contrat.Client = tbl_Clients.ID
GROUP BY id, firstname, lastname

关于mysql - 连接中的 SQL 计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26746318/

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