MySQL 子查询和连接语句
MySQL subquery and join statement
我已经编写了一个查询,根据员工 ID emp
从 tables e and profile
中获取员工的性别和姓名,现在我有一个 table喜欢:
gender name
m qwqw
f wewe
m erer
m rtrt
f tyty
使用的查询是:
select gender, name from profile inner join e on profile.emp = e.emp
现在我必须编写一个子查询来创建一个 table 来计算特定性别的员工数量,例如:
gender count
m 3
f 2
用我写的查询:
SELECT COUNT(gender) AS 'Count' FROM (select gender, name from profile inner join e on profile.emp = e.emp)AS Gender GROUP BY Gender;
我可以打印:
count
3
2
但不是性别列。如何使用连接和子查询来根据需要正确显示数据?
试试下面给出的代码=>
SELECT Gender, COUNT(gender) AS 'Count' FROM (select gender, name from profile inner join e on profile.emp = e.emp)AS Gender GROUP BY Gender;
您尝试过选择 gender, COUNT(gender)
吗?您的查询将变为
SELECT gender, COUNT(gender) AS 'Count' FROM (select gender, name from profile inner join e on profile.emp = e.emp)AS Gender GROUP BY Gender;
您需要在 select
中包含 gender
。您可以按未选择的列和表达式进行聚合——尽管这有点不寻常。
在你的例子中,你不需要子查询。另外强烈推荐table别名:
select gender, count(*)
from profile p inner join
e
on p.emp = e.emp
group by gender;
我已经编写了一个查询,根据员工 ID emp
从 tables e and profile
中获取员工的性别和姓名,现在我有一个 table喜欢:
gender name
m qwqw
f wewe
m erer
m rtrt
f tyty
使用的查询是:
select gender, name from profile inner join e on profile.emp = e.emp
现在我必须编写一个子查询来创建一个 table 来计算特定性别的员工数量,例如:
gender count
m 3
f 2
用我写的查询:
SELECT COUNT(gender) AS 'Count' FROM (select gender, name from profile inner join e on profile.emp = e.emp)AS Gender GROUP BY Gender;
我可以打印:
count
3
2
但不是性别列。如何使用连接和子查询来根据需要正确显示数据?
试试下面给出的代码=>
SELECT Gender, COUNT(gender) AS 'Count' FROM (select gender, name from profile inner join e on profile.emp = e.emp)AS Gender GROUP BY Gender;
您尝试过选择 gender, COUNT(gender)
吗?您的查询将变为
SELECT gender, COUNT(gender) AS 'Count' FROM (select gender, name from profile inner join e on profile.emp = e.emp)AS Gender GROUP BY Gender;
您需要在 select
中包含 gender
。您可以按未选择的列和表达式进行聚合——尽管这有点不寻常。
在你的例子中,你不需要子查询。另外强烈推荐table别名:
select gender, count(*)
from profile p inner join
e
on p.emp = e.emp
group by gender;