请教个简单的mysql的语法问题
书上的例子。有两个表student, absence,通过student_id联系在一起。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 |
+------------+------------+
SELECT * FROM student;和SELECT student_id FROM absence;都是可以正常执行的。但是
SELECT * FROM student WHERE student_id IN (SELECT student_id FROM absence);
这个语句的作用是把student含有absence中有的student_id的记录给显示出来。在mysql里边说是有IN的语法错误?错在什么地方?
如果用下面的语句,就可以。
SELECT * FROM student WHERE student_id IN ('1','2','3')
整个书上IN的语法,都是这么用。大家告诉我这个语法错在什么地方? MySQL4.1.x才开始支持不完整的嵌套子查询
你可以选择使用PostgreSQL :mrgreen: 不要用嵌套,你可以
SELECT * FROM student,absence WHERE student.student_id = absence.student_id ; 谢谢。我回头看看,那个书上说的myql是用的那个版本。 中国的计算机教材都是针对两年前的软件所写的…………
针对新软件的基本上都是随软件的文档的中文翻译。 中国的计算机教材都是针对两年前的软件所写的…………
针对新软件的基本上都是随软件的文档的中文翻译。
翻译的时候保证质量就好了 :mrgreen: :roll:
会么? 就是说嘛 :mrgreen:
http://lib.verycd.com/2005/10/08/0000068700.html
VeryCD上一哥们儿贡献了好多原版Linux书籍,都是很不错的哦
页:
[1]