LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 947|回复: 2

[help]请教个简单的问题

[复制链接]
发表于 2005-10-20 05:25:21 | 显示全部楼层 |阅读模式
书上的例子。有两个表student, absence,通过student_id联系在一起。
SELECT * FROM student WHERE student_id IN (SELECT student_id FROM absence);

这个语句的作用是把student含有absence中有的student_id的记录给显示出来。在mysql里边说是有语法错误?错在什么地方?整个书上IN的语法,都是这么用。
大家告诉我这个语法错在什么地方? :thank
 楼主| 发表于 2005-10-21 00:05:58 | 显示全部楼层
没有人知道?
SELECT * FROM student
和SELECT student_id FROM absence
都是可以正常执行的。
就是 SELECT * FROM student WHERE student_id IN (SELECT student_id FROM absence) 不可以,一用,就说有语法错误。
student table:
mysql> SELECT * FROM student;
+-----------+-----+------------+
| name | sex | student_id |
+-----------+-----+------------+
| Megan | F | 1 |
| Joseph | M | 2 |
| Kyle | M | 3 |
| Katie | F | 4 |
| Abby | F | 5 |
| Nathan | M | 6 |
| Liesl | F | 7 |
| Ian | M | 8 |
| Colin | M | 9 |
.....

absence table
+------------+------------+
| student_id | date |
+------------+------------+
| 3 | 2004-09-03 |
| 5 | 2004-09-03 |
| 10 | 2004-09-06 |
| 10 | 2004-09-09 |
| 17 | 2004-09-07 |
| 20 | 2004-09-07 |
+------------+------------+

[/quote]
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-10-22 07:33:52 | 显示全部楼层
解决了,需要4.1以上的版本,我用的是4.0.*版本。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表