MYSQL 按出勤日期出勤
MYSQL attendance by attendance date
我想在mysql做一个考勤系统。就像两个不同的日期一样。 2017-12-21 和 2017-12-23
如果我有
我的 table 测试看起来像这样。
姓名日期出席评论
Person 1 2017-12-21 Yes comment
Person 1 2017-12-23 Yes comment
Person 2 2017-12-21 No comment
Person 2 2017-12-23 Yes comment
而我想要的结果是
-----2017-12-21----------------2017-12-23-----------
-----Person 1 Yes comment ---- Person 1 Yes comment
-----Person 2 NO comment ---- Person 2 Yes comment
----------------------------------------------------
认为 leftjoin 会起作用,但对我来说很难有人可以提供帮助吗?
谢谢
我不太确定您期望的确切格式。如果您的 table 结构如下所示,
CREATE TABLE IF NOT EXISTS `attendance` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
`date` date NOT NULL,
`attendance` varchar(10) NOT NULL,
`comment` varchar(1023) NOT NULL,
PRIMARY KEY (`id`)
);
您可以运行下面的查询,
SELECT date,
GROUP_CONCAT(`name`, ' ', `attendance`, ' ', `comment`) AS attendance_info
FROM `attendance`
GROUP BY `date`
以下面的格式提取数据。
date | attendance_info
2017-12-21 | Person 1 YES Comment,Person 2 NO Comment
2017-12-23 | Person 1 YES Comment,Person 1 YES Comment
这是一个运动队。我有这个我的数据库,现在我已经测试了很多方法来做到这一点。 Group_Contact 不会工作。
CREATE TABLE IF NOT EXISTS `attendance` (
`playerid` int(11) NOT NULL,
`idnumber` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
`date` date NOT NULL,
`attendance` varchar(10) NOT NULL,
`comment` varchar(1023) NOT NULL,
PRIMARY KEY (`playerid`)
);
这是我想在以后 php 中使用的结果。 (a = 出席 c = 评论)
attendance| Name | a2017-12-21|c2017-12-21|a2017-12-23|c2017-12-23|
| Person 1 | YES | Comment | NO | Comment |
| Person 2 | YES | Comment | YES | Comment |
我想在mysql做一个考勤系统。就像两个不同的日期一样。 2017-12-21 和 2017-12-23
如果我有
我的 table 测试看起来像这样。 姓名日期出席评论
Person 1 2017-12-21 Yes comment
Person 1 2017-12-23 Yes comment
Person 2 2017-12-21 No comment
Person 2 2017-12-23 Yes comment
而我想要的结果是
-----2017-12-21----------------2017-12-23-----------
-----Person 1 Yes comment ---- Person 1 Yes comment
-----Person 2 NO comment ---- Person 2 Yes comment
----------------------------------------------------
认为 leftjoin 会起作用,但对我来说很难有人可以提供帮助吗? 谢谢
我不太确定您期望的确切格式。如果您的 table 结构如下所示,
CREATE TABLE IF NOT EXISTS `attendance` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
`date` date NOT NULL,
`attendance` varchar(10) NOT NULL,
`comment` varchar(1023) NOT NULL,
PRIMARY KEY (`id`)
);
您可以运行下面的查询,
SELECT date,
GROUP_CONCAT(`name`, ' ', `attendance`, ' ', `comment`) AS attendance_info
FROM `attendance`
GROUP BY `date`
以下面的格式提取数据。
date | attendance_info
2017-12-21 | Person 1 YES Comment,Person 2 NO Comment
2017-12-23 | Person 1 YES Comment,Person 1 YES Comment
这是一个运动队。我有这个我的数据库,现在我已经测试了很多方法来做到这一点。 Group_Contact 不会工作。
CREATE TABLE IF NOT EXISTS `attendance` (
`playerid` int(11) NOT NULL,
`idnumber` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
`date` date NOT NULL,
`attendance` varchar(10) NOT NULL,
`comment` varchar(1023) NOT NULL,
PRIMARY KEY (`playerid`)
);
这是我想在以后 php 中使用的结果。 (a = 出席 c = 评论)
attendance| Name | a2017-12-21|c2017-12-21|a2017-12-23|c2017-12-23|
| Person 1 | YES | Comment | NO | Comment |
| Person 2 | YES | Comment | YES | Comment |