有两个表
班级ID | 班名 |
1 | 一年级 |
2 | 二年级 |
3 | 三年级 |
学号 | 学生名 | 班级ID |
1 | aaa | 1 |
2 | bbb | 2 |
请问我要插入学生,资料显示有:学号、学生名和班名
大概就是这样的思路:insert into student(学号,学生名,班级ID) values('3','ccc',(select 班级ID from class where 班名='三年级'))但是这个是错误的表达。
最后的表达是:insert into student(学号,学生名,班级ID) select '3','ccc',班级ID from class where 班名='三年级'
类似这样的复合语句,但是是update语句的复合语句:update student set 学生名='ddd',班级ID=(select 班名 from class where 班名='二年级') where 学号='2'
类似的例题还有:
1、f_lang(语言表)
l_code(语言简称) | l_name(语言名称) |
chi | 汉语 |
eng | 英语 |
2、f_publ(出版社表)
p_code(出版社编号) | p_name(出版社名称) |
1212 | 清华大学出版社 |
1313 | 机械工业出版社 |
3、f_books(图书表)
b_no(流水号) | b_name(书名) | b_lang(语种简称) | b_publ(出版社编号) |
1 | 数学 | chi | 1313 |
2 | 网络 | eng | 1313 |
有窗口获得的数据有:
数学 |
英语 |
清华大学出版社 |
个人开始的思路是:
update f_books set b_name='数学',b_lang=(select l_code from f_lang where l_name='英语'),b_publ=(select p_code from f_publ where p_name='清华大学出版社') where b_no='1'