Php MYSQL计数和连接查询

Php MYSQL计数和连接查询,php,mysql,Php,Mysql,表:用户 Color 1 2 2 2 1 3 表:颜色 ID Name 1 Orange 2 Yellow 3 Pink 4 Blue 预期结果 Color Total Orange 2 Yellow 3 Pink 1 Mysql查询: SELECT * FROM User LEFT JOIN Color ON Color.ID = User.Color; 我怎样才能得到预期的结果?请帮帮我。

表:用户

Color
1
2
2
2
1
3
表:颜色

ID      Name
1       Orange
2       Yellow
3       Pink
4       Blue
预期结果

Color      Total
Orange     2
Yellow     3
Pink       1
Mysql查询:

SELECT * FROM User LEFT JOIN Color ON Color.ID = User.Color;

我怎样才能得到预期的结果?请帮帮我。先谢谢你

这将有助于您这样做。兄弟:)

SELECT c.NAME, COUNT(*) AS Total 
FROM Color c
INNER JOIN User u ON (u.Color = c.Id)
GROUP BY c.NAME;

谢谢大家!

这将有助于您这样做。兄弟:)


谢谢大家!

@Shah Rushabh使用U颜色分组,如下所示,您将获得您的结果:

SELECT C.Name, COUNT(U.Color) as Total from user as U 
inner join color as C on 
U.Color = C.Id GROUP BY U.Color

@Shah Rushabh使用U颜色分组,如下所示,您将得到您的结果:

SELECT C.Name, COUNT(U.Color) as Total from user as U 
inner join color as C on 
U.Color = C.Id GROUP BY U.Color

你自己试过什么吗?堆栈溢出不是免费的家庭作业服务。@TimBiegeleisen我试过了,但不起作用,所以我发布了这个问题。我决不想把这个平台用作不好的目的或家庭作业。请提供一些您已经尝试过的代码。@ShahRushabh我提出了一个问题,并回答了您的问题。请检查一下。你自己试过什么了吗?堆栈溢出不是免费的家庭作业服务。@TimBiegeleisen我试过了,但不起作用,所以我发布了这个问题。我决不想把这个平台用作不好的目的或家庭作业。请提供一些您已经尝试过的代码。@ShahRushabh我提出了一个问题,并回答了您的问题。请检查一下。你能解释一下你为什么使用左连接吗??因为它可以通过内部联接完成,而左联接的成本很高。左联接将返回左表(颜色)中的所有记录,以及右表(用户)中匹配的记录。如果没有匹配项,则结果从右侧为NULL。这就是为什么我们必须使用左连接。在这种情况下,我们还可以应用内部联接或简单联接@这是查询优化的基本部分。谢谢:)你能解释一下你为什么使用左连接吗??因为它可以通过内部联接完成,而左联接的成本很高。左联接将返回左表(颜色)中的所有记录,以及右表(用户)中匹配的记录。如果没有匹配项,则结果从右侧为NULL。这就是为什么我们必须使用左连接。在这种情况下,我们还可以应用内部联接或简单联接@这是查询优化的基本部分。谢谢:)