TEACHER (TID,TNAME,。)
COURSE(CID,CNAME,)
CLASSARRANGE(TID,CID,CDATETIME)
COURSE(CID,CNAME,)
CLASSARRANGE(TID,CID,CDATETIME)
解决方案 »
- 求SQL 语句 (mysql)
- mysql 内存溢出
- 请教两个SQL查询问题,急!先谢了
- 提示Table storage engine for 'table_name' doesn't have this option,我该如何解决
- MySQL里怎么编程?怎么可以像SQL Server里一样进行结构化编程?
- 请问juilder怎么连接mysql数据库??急!
- 我的PHP+MySQL的论坛无法访问了,谁能帮我看看会是什么问题?
- 求助,mysql访问IPV6的问题
- where 和 join on的问题
- left join和in哪种查询效率要好
- 关于mysql出错ERROR 1064 (42000)
- 数据库如果是utf8的编码该如何解决,按字母检索问题
给个思路也可以!
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`年` year(4) NOT NULL,
`周in年` tinyint(3) unsigned NOT NULL,
`老师名` varchar(10) NOT NULL,
`周几上课` enum('周一','周二','周三','周四','周五','周六','周日') DEFAULT NULL,
`上课时间` enum('上午','下午','晚上') DEFAULT NULL,
`课程名` enum('物理','化学','英语','数学','语文') DEFAULT NULL,
PRIMARY KEY (`id`,`周in年`),
UNIQUE KEY `a` (`周in年`,`周几上课`,`上课时间`) USING BTREE
) ENGINE=MyISAM AUTO_INCREMENT=5 DEFAULT CHARSET=gbk;mysql> select * from test.kecheng;
+----+------+--------+--------+----------+----------+--------+
| id | 年 | 周in年 | 老师名 | 周几上课 | 上课时间 | 课程名 |
+----+------+--------+--------+----------+----------+--------+
| 1 | 2000 | 23 | 张 | 周三 | 下午 | 英语 |
| 2 | 2000 | 23 | 王 | 周二 | 晚上 | 化学 |
| 3 | 2000 | 24 | 张 | 周四 | 上午 | 英语 |
| 4 | 0000 | 23 | 张 | 周四 | 晚上 | 英语 |
+----+------+--------+--------+----------+----------+--------+mysql> select 课程名,上课时间,周几上课 from test.kecheng where 周in年='23' and 老师名='张' order by 周几上课;
+--------+----------+----------+
| 课程名 | 上课时间 | 周几上课 |
+--------+----------+----------+
| 英语 | 下午 | 周三 |
| 英语 | 晚上 | 周四 |
+--------+----------+----------+
CREATE TABLE `kecheng2` (
`老师名` enum('张老师') NOT NULL,
`周in年` tinyint(4) NOT NULL,
`上课时间` enum('上午','下午','晚上') NOT NULL,
`星期日` enum('物理','化学','外语','语文','数学') NOT NULL,
`星期一` enum('物理','化学','外语','语文','数学') NOT NULL,
`星期二` enum('物理','化学','外语','语文','数学') NOT NULL,
`星期三` enum('物理','化学','外语','语文','数学') NOT NULL,
`星期四` enum('物理','化学','外语','语文','数学') NOT NULL,
`星期五` enum('物理','化学','外语','语文','数学') NOT NULL,
`星期六` enum('物理','化学','外语','语文','数学') NOT NULL,
UNIQUE KEY `a` (`上课时间`) USING BTREE
) ENGINE=MyISAM DEFAULT CHARSET=gbk;mysql> select * from kecheng2;
+--------+--------+----------+--------+--------+--------+--------+--------+--------+--------+
| 老师名 | 周in年 | 上课时间 | 星期日 | 星期一 | 星期二 | 星期三 | 星期四 | 星期五 | 星期六 |
+--------+--------+----------+--------+--------+--------+--------+--------+--------+--------+
| 张老师 | 22 | 上午 | 物理 | 物理 | 物理 | 物理 | 物理 | 物理 | 物理 |
| 张老师 | 22 | 下午 | 外语 | 外语 | 语文 | 语文 | 语文 | 数学 | 数学 |
| 张老师 | 22 | 晚上 | 语文 | 语文 | 外语 | 语文 | 物理 | 数学 | 外语 |
+--------+--------+----------+--------+--------+--------+--------+--------+--------+--------+
当然 这样也行
CREATE TABLE `kecheng2` (
`老师名` varchar(10) NOT NULL,
`周in年` tinyint(4) NOT NULL,
`上课时间` enum('上午','下午','晚上') NOT NULL,
`星期日` enum('物理','化学','外语','语文','数学') NOT NULL,
`星期一` enum('物理','化学','外语','语文','数学') NOT NULL,
`星期二` enum('物理','化学','外语','语文','数学') NOT NULL,
`星期三` enum('物理','化学','外语','语文','数学') NOT NULL,
`星期四` enum('物理','化学','外语','语文','数学') NOT NULL,
`星期五` enum('物理','化学','外语','语文','数学') NOT NULL,
`星期六` enum('物理','化学','外语','语文','数学') NOT NULL,
) ENGINE=MyISAM DEFAULT CHARSET=gbk;
再来一个行列转换
课程表(ID,NAME)
排课表(教师ID,课程ID,时间 )
用交叉表形成你要求的格式