查找MySQL中每个人发送的邮件数
这就是我到目前为止所做的:查找MySQL中每个人发送的邮件数,mysql,Mysql,这就是我到目前为止所做的: SELECT COUNT (message) AS 'Number Of Messages', person.id, first_name AS 'Sender\'s first name', last_name AS 'Sender\'s last name' FROM person JOIN message ON person.id = message.person_id; 问题是: 任务14:查找每个人发送的邮件数 构造
SELECT
COUNT (message) AS 'Number Of Messages',
person.id,
first_name AS 'Sender\'s first name',
last_name AS 'Sender\'s last name'
FROM person
JOIN message
ON person.id = message.person_id;
问题是:
任务14:查找每个人发送的邮件数
构造SQL语句以查找为每个人发送的消息数。注意:必须使用WHERE子句来设置此查询的条件。显示以下列:
-Count of messages
-Person ID
-First Name
-Last Name
这是我们正在使用的桌子
表名称:消息
+------------+-----------+-------------+--------------------------------------------+---------------------+
| message_id | sender_id | receiver_id | message | send_datetime |
+------------+-----------+-------------+--------------------------------------------+---------------------+
| 1 | 1 | 2 | Congrats on winning the 800m Freestyle! | 2016-12-25 09:00:00 |
| 2 | 2 | 1 | Congrats on winning 23 gold medals! | 2016-12-25 09:01:00 |
| 3 | 3 | 1 | You're the greatest swimmer ever | 2016-12-25 09:02:00 |
| 4 | 1 | 3 | Thanks! You're the greatest sprinter ever | 2016-12-25 09:04:00 |
| 5 | 1 | 4 | Good luck on your race | 2016-12-25 09:05:00 |
+------------+-----------+-------------+--------------------------------------------+---------------------+
表名:人
+-----------+------------+-----------+
| person_id | first_name | last_name |
+-----------+------------+-----------+
| 1 | Michael | Phelps |
| 2 | Katie | Ledecky |
| 3 | Usain | Bolt |
| 4 | Allyson | Felix |
| 5 | Kevin | Durant |
| 6 | Diana | Taurasi |
+-----------+------------+-----------+
谁能告诉我哪里出了问题
谢谢大家!
SELECT
COUNT(*) AS `Number Of Messages`,
p.id,
p.first_name AS `Sender's first name`,
p.last_name AS `Sender's last name`
FROM
person p inner JOIN
message m ON p.person_id = m.person_id
group by
p.person_id,
p.first_name,
p.last_name;
结果应该是这样的
MessagesidSender的第一个姓名Sender的姓氏数伊凡德拉戈 结果应该是这样的 MessagesidSender的第一个姓名Sender的姓氏数
伊凡德拉戈
一种方法使用从
person
表到message
表的左连接,该表查找每个人的计数:
SELECT
p.person_id,
p.first_name,
p.last_name,
COUNT(m.person_id) AS num_messages
FROM person p
LEFT JOIN message
ON p.person_id = m.person_id
GROUP BY
p.person_id,
p.first_name,
p.last_name;
注意:我们这里需要一个左连接,以覆盖没有发送消息的人的边缘情况。在这种情况下,我们希望为他们的计数报告零。一种方法使用从
person
表到message
表的左连接,该表查找每个人的计数:
SELECT
p.person_id,
p.first_name,
p.last_name,
COUNT(m.person_id) AS num_messages
FROM person p
LEFT JOIN message
ON p.person_id = m.person_id
GROUP BY
p.person_id,
p.first_name,
p.last_name;
SELECT
COUNT(*) AS `Number Of Messages`,
p.id,
p.first_name AS `Sender's first name`,
p.last_name AS `Sender's last name`
FROM
person p LEFT JOIN
message m ON p.person_id = m.person_id
group by
p.person_id,
p.first_name,
p.last_name;
注意:我们这里需要一个左连接,以覆盖没有发送消息的人的边缘情况。在这种情况下,我们要为他们的计数报告零。我可能太累了,以至于我盯着给出答案的人,帮助我找到正确的答案。对不起,我记不起来了,但是谢谢你
SELECT
COUNT(*) AS `Number Of Messages`,
p.id,
p.first_name AS `Sender's first name`,
p.last_name AS `Sender's last name`
FROM
person p LEFT JOIN
message m ON p.person_id = m.person_id
group by
p.person_id,
p.first_name,
p.last_name;
这就是正确工作的原因:
SELECT
COUNT(message.message_id) AS 'Count of messages',
person.person_id,
person.first_name AS 'First Name',
person.last_name AS 'Last Name'
FROM message
INNER JOIN person
ON message.sender_id = person.person_id
group by person.person_id,person.first_name,person.last_name;
我可能太累了,我盯着那个给我答案的人看,他帮我找到了正确的答案。对不起,我记不起来了,但是谢谢你 这就是正确工作的原因:
SELECT
COUNT(message.message_id) AS 'Count of messages',
person.person_id,
person.first_name AS 'First Name',
person.last_name AS 'Last Name'
FROM message
INNER JOIN person
ON message.sender_id = person.person_id
group by person.person_id,person.first_name,person.last_name;
谢谢大家的帮助!他们不是没有错误的工作,但他们确实给了我一个很好的开始和开始工作的地方。谢谢大家的帮助!他们不是没有错误就可以工作的,但是他们确实给了我一个很好的开始和开始工作的地方。