Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
查找MySQL中每个人发送的邮件数_Mysql - Fatal编程技术网

查找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;

谢谢大家的帮助!他们不是没有错误的工作,但他们确实给了我一个很好的开始和开始工作的地方。谢谢大家的帮助!他们不是没有错误就可以工作的,但是他们确实给了我一个很好的开始和开始工作的地方。