我正在从事一个项目,在其中教师可以节省上课时间。他可以根据天数看到自己的时间。我用了代码
$qry = mysqli_query($con, 'select * from users left join time_slot on users.id=time_slot.u_id where users.id=' . $id); echo '
id | Date | start time | End Time | |
---|---|---|---|---|
' . $row['id'] . ' | '; echo '' . $row['name'] . ' | '; echo '' . $row['day'] . ' | '; echo '' . $row['time_from'] . ' | '; echo '' . $row['time_to'] . ' | '; echo '
但是,如果导师在同一天有多个班级,则会显示多次。我想显示他是否在同一天(星期一)有2个或更多的课程,然后所有时隙都显示在一行中。一周中的所有天都一样。我该怎么做?
您可以为此使用GROUP_CONCAT函数。假设您的ddl是这样的
create table users(id bigint, name varchar(50)); create table time_slot(id bigint, u_id bigint, day datetime, time_from time, time_to time);
的SQL将如下所示:
select u.id,u.name, ts.day, group_concat(ts.time_from, ' - ', ts.time_to ORDER BY ts.time_from, ts.time_to) from users u left outer join time_slot ts on u.id = ts.u_id group by u.id, u.name, ts.day order by u.name, ts.day
见小提琴。