SQL多表查询
来源:互联网 发布:淘宝开店名称叫什么好 编辑:程序博客网 时间:2024/05/16 06:14
情况一:
我们现在两个表,一个学生Student表,一个性别Gender表。Student : id name gender 。Gender :: key value
有如下值:
Student :
001 xy 1
002 xyy 1
003 小红 0
Gender
0 女
1 男
2 其他
那么我们先看一个表 Student,我要查找性别为男的学生
select id,name,gender from Student where gender = '1';
那我们多表查询,找到男学生,性别显示不再是0,1,2 而是汉字
select s.id,s.name,g,value
from Student s,Gender g
where s.gender = '1'
and g.key = s.gender (正确)// 两条记录
看到了吗?我们不仅要写s.gender = '1' 还要写g.key = s.gender。也就是不仅要判断值等于什么,而且要写出关联字段的相等关系。
select s.id,s.name,g,value
from Student s,Gender g
where s.gender = '1' (错误)// 2*3 = 6条记录 2个男学生*3个性别表记录(笛卡儿积)
select s.id,s.name,g,value
from Student s,Gender g
whereg.key = s.gender (错误)// 3条记录,3个学生,不分性别
情况二:
我们现在两个表,一个学生Student表,一个参数CS表。Student : id name gender , status。CS :: key value name
有如下值:
Student :
001 xy 1 0
002 xy 1 0
003 xh 0 0
CS
gender 0 女
gender 1 男
gender 2 其他
status 0 在校
status 1 离校
我现在要 取出姓名,性别,在校状态。
select s.name,xb.mc,zt.mc
from Student s,
(select key value name from CS where key = 'gender') xb,
(select key value name from CS where key = 'status') zt
where s.gender = xb.value
and s.status = zt.value;
这就不能向情况一中一样简单的两表关联了。你不可能CS.key又等于gender又等于status吧。
- 多表查询 SQL
- 多表查询 SQL
- SQL多表查询
- sql多表查询
- SQL多表查询
- SQL多表查询
- sql 多表查询
- sql多表查询
- sql多表查询
- SQL多表查询
- SQL多表查询
- sql多表查询
- sql多表查询
- SQL --> 多表查询
- SQL多表查询
- 【SQL】多表查询
- SQL多表查询
- sql多表查询
- linux内核调试技巧--current的应用
- android 自定义样式
- 利用 C# 开发工具自动完成创建一些基本的代码
- 操作系统学习之——系统分析师PV操作的典型试题
- pop imap smtp 端口
- SQL多表查询
- 一卡通收费系统丢失收费记录的原因分析
- 小三带着孩子要与自己共同拥有老公
- js 身份证验证
- 一个计算文件夹大小的Java小程序
- SL4A中android可以调用的方法(2)------方法实例
- 各大型邮箱smtp服务器及端口收集
- 2012年2月
- [转] C#技术分享【PDF转换成图片——11种方案】