社区
基础和管理
帖子详情
关于多表连接的问题!!!
qx0609
2005-09-07 04:40:58
我有四个表
t1
id name
t2
id value1
t3
id value2
t4
id value3
我想输出id,name,value1,value2,value3
t2,t3,t4的id不重复,但记录数不相同。
想象的输出结果
01 AAA 10 20 30
02 BBB 0 10 0
03 CCC 0 0 0
04 DDD 0 10 15
O代表在相对表中无记录。
...全文
163
3
打赏
收藏
关于多表连接的问题!!!
我有四个表 t1 id name t2 id value1 t3 id value2 t4 id value3 我想输出id,name,value1,value2,value3 t2,t3,t4的id不重复,但记录数不相同。 想象的输出结果 01 AAA 10 20 30 02 BBB 0 10 0 03 CCC 0 0 0 04 DDD 0 10 15 O代表在相对表中无记录。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
seabore
2005-12-27
打赏
举报
回复
好像不对喔,楼主想要的是4张表的合集吧,左连接是以主表为最大记录数的吧
lizhaogui
2005-09-07
打赏
举报
回复
我补充一下:
select t1.id,t1.name,nvl(t2.value1,0),nvl(t3.value2,0),nvl(t4.value3,0)
from t1,t2,t3,t4
where t1.id=t2.id(+)
and t1.id=t3.id(+)
and t1.id=t4.id(+);
这里用到了左联接,即左边的表是主表,(+)号放在副表的后面,无加号的代表主表,在查询时主表中的数据记录全部都显示出来的,无论副表中有没有。nvl(t2.value1,0)代表是当t2.value1是空时就用0代替,非空时就用本身值。
sasacat
2005-09-07
打赏
举报
回复
select t1.id,name,nvl(value1,0),nvl(value2,0),nvl(value3,0)
from t1,t2,t3,t4
where t1.id=t2.id(+)
and t1.id=t3.id(+)
and t1.id=t4.id(+)
【MySQl】
多表
关联的几种方式和外键
问题
、
多表
查询与子查询
目录表与表的关联关系:一对一 一对多多对多
多表
查询交叉
连接
内
连接
外
连接
全
连接
(union、union all)自
连接
子查询为什么要有
多表
: 当一张表中的数据比较多的时候,如果只建立一张表,可能会有大量的数据重复(冗余),站在设计的角度上来讲,将不同的数据放在对应的独立的表中,可以减少冗余外键(foreign key): 用来描述多张表之间的关联关系 而在真正使用过程中发现 id、photo、nickname、age、gender 字段比较常用,此时就可以将这张表
【MySQL-11】
多表
查询全解-【
多表
关系/内外自
连接
/子查询/
多表
查询案例链接】(可cv代码&案例演示)
查询员工的姓名、年龄、职位、部门信息。 查询年龄小于30岁的员工姓名、年龄、职位、部门信息。 查询拥有员工的部门ID、部门名称。 查询所有年龄大于40岁的员工,及其归属的部门名称;如果员工没有分配部门,也需要展示出来。 查询所有员工的工资等级。 查询“研发部”所有员工的信息及工资等级。 查询“研发部”员工的平均工资。 查询工资比“灭绝”高的员工信息。 查询比平均薪资高的员工信息。 查询低于本部门平均工资的员工信息。 查询所有的部门信息,并统计部门的员工人数。 查询所有学生的选课情况,展示出学生名称,学号,课
SQL基础④ |
多表
查询篇
本文是SQL基础第四篇,主要讲解
多表
查询(关联查询),涉及笛卡尔积的成因与解决,等值/非等值、自
连接
等分类,内/外
连接
的实现,以及SQL99语法等,内容详细,帮助零基础读者掌握
多表
数据关联查询的能力。
MySQL
多表
连接
查询
例如,如果员工表和课程表中没有任何关联字段,那么
连接
查询员工和课程的信息时,可能会产生两个表的笛卡尔积,即每个员工和每个课程的所有组合。例如,如果员工表和部门表中的部门编号都有重复值,那么
连接
查询员工和部门的信息时,可能会出现一个员工对应多个部门,或者一个部门对应多个员工的情况。例如,查询学生表和成绩表中,所有有成绩的学生的姓名和成绩,如果某个成绩没有对应的学生,则显示NULL,可以使用如下语句:。例如,查询学生表和课程表中,所有学生和课程的组合,可以使用如下语句:。
【MySQL】
多表
查询的使用
1. 熟悉常见的表 DESC employees; DESC departments; DESC locations; 引入:查询一个员工(ABEL)在哪个城市工作 SELECT * FROM employees WHERE last_name = 'Abel'; SELECT * FROM departments WHERE department_id = 80; SELECT * FROM locations WHERE location_id = 2500; 但是这样进行了三次查询,会比较
基础和管理
17,377
社区成员
95,113
社区内容
发帖
与我相关
我的任务
基础和管理
Oracle 基础和管理
复制链接
扫一扫
分享
社区描述
Oracle 基础和管理
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章