PHP:通过电子邮件连接数据库结果

PHP:通过电子邮件连接数据库结果,php,mysql,Php,Mysql,我有一个分配给多个用户的任务列表。我想设置一个cron作业,并每小时向每个用户发送一次电子邮件通知。我的问题是: SELECT t.*, u.name, u.email FROM tasks t, users u WHERE t.date_created > DATE_SUB(NOW(), INTERVAL 1 HOUR) AND t.user_id = u.id ORDER BY t.date_created ASC 结果如下(我修剪了几列以更好地拟合): 问题是我不知道如何连接属于某

我有一个分配给多个用户的任务列表。我想设置一个cron作业,并每小时向每个用户发送一次电子邮件通知。我的问题是:

SELECT t.*, u.name, u.email
FROM tasks t, users u
WHERE t.date_created > DATE_SUB(NOW(), INTERVAL 1 HOUR) AND t.user_id = u.id
ORDER BY t.date_created ASC
结果如下(我修剪了几列以更好地拟合):

问题是我不知道如何连接属于某个用户id的任务,然后将它们发送到指定的电子邮件。因此,对于上述示例,将发送两封电子邮件:

  • 任务1和任务3(至js@gmail.com)
  • 任务2和任务4(至ti@gmail.com)

  • 尝试使用
    GROUP\u CONCAT
    aggregate命令:

    SELECT GROUP_CONCAT(t.title), u.name, u.email
    FROM tasks t, users u
    WHERE t.date_created > DATE_SUB(NOW(), INTERVAL 1 HOUR) AND t.user_id = u.id
    GROUP BY u.id 
    
    这将输出如下内容:

    task1,task3 | John | js@gmail.com
    task2,task4 | Tim  | ti@gmail.com
    

    默认值是逗号分隔的字符串,但您可以指定另一个类似这样的分隔符:
    GROUP\u-CONCAT(t.title,'and')
    尝试使用
    GROUP\u-CONCAT
    aggregate命令:

    SELECT GROUP_CONCAT(t.title), u.name, u.email
    FROM tasks t, users u
    WHERE t.date_created > DATE_SUB(NOW(), INTERVAL 1 HOUR) AND t.user_id = u.id
    GROUP BY u.id 
    
    这将输出如下内容:

    task1,task3 | John | js@gmail.com
    task2,task4 | Tim  | ti@gmail.com
    

    默认值是逗号分隔的字符串,但您可以指定另一个类似这样的分隔符:
    GROUP\u CONCAT(t.title,'and')

    我不确定您想要什么,但请尝试
    通过电子邮件分组
    通过用户id分组
    ?我不确定您想要什么,但请尝试
    通过电子邮件分组
    通过用户id分组
    ?谢谢!您也可以使用
    选择GROUP_CONCAT(t.title)作为标题
    来更改列标题。谢谢!您还可以使用
    选择GROUP_CONCAT(t.title)作为标题
    来更改列标题。