sql 怎么通过多个条件连接2张表

比如2张表:test1,test2其中,2张表中号码有重复的,日期(月份)肯定也重复,但通过日期(月份)、号码这2个条件就不会有重复的了,怎么把两种表通过这两个条件关联在... 比如2张表:test1,test2
其中,2张表中号码有重复的,日期(月份)肯定也重复,但通过 日期(月份)、号码这2个条件就不会有重复的了,怎么把两种表通过这两个条件关联在一起。
但是我想让test1 表中所有数据都显示出来,用where语句会不会丢失哦?
展开
 我来答
59分粑粑分享生活
高粉答主

2020-04-19 · 专注生活好物分享,解答日常方方面面的问题
59分粑粑分享生活
采纳数:326 获赞数:119788

向TA提问 私信TA
展开全部

实现的方法和详细的操作步骤如下:

1、第一步,构建两个表,然后分别插入数据,如下图所示,然后进入下一步。

2、其次, LEFT
 JOIN:左联接。 即使右表中没有匹配项,所有行也会从左表中返回。 如果右表不匹配,则将其填充为空,如下图所示,然后进入下一步。

3、接着, RIGHT
 JOIN:右联接,即使左表中没有匹配项,所有行也会从右表中返回,如下图所示,然后进入下一步。

4、然后, FULL
 JOIN:完整的外部联接,只要其中一个表中存在匹配项,就会返回该行,如下图所示,然后进入下一步。

5、最后,cross join:交叉联接,两个表的倍数select * from Emp cross join Nation,如下图所示。这样,问题就解决了。

滟丽00
高粉答主

2019-08-15 · 繁杂信息太多,你要学会辨别
知道答主
回答量:1487
采纳率:0%
帮助的人:21.9万
展开全部

1、首先建两张表,分别插入数据。

2、LEFT JOIN:左连接,即使右表中没有匹配,也从左表返回所有的行, 右表不匹配的用null 填充。

3、RIGHT JOIN:右连接,即使左表中没有匹配,也从右表返回所有的行。

4、FULL JOIN:完整外连接,只要其中一个表中存在匹配,则返回行。

5、cross join: 交叉连接,两表的倍数select * from Emp cross join Nation。

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
badkano
推荐于2017-10-14 · 知道合伙人体育行家
badkano
知道合伙人体育行家
采纳数:144777 获赞数:885357
团长

向TA提问 私信TA
展开全部

多个条件用where……and……连接即可,举例如下:

1、创建测试表,插入数据:

create table dept 
(did int,
dname varchar(20)) --创建dept系别表

insert into dept values (1,'计算机系')
insert into dept values (2,'数学系')
insert into dept values (3,'物理系')

create table student
(sid int,
sname varchar(10),
sage int,
ssex varchar(4),
sdept int) --创建学生表


insert into student values (1,'张三',20,'男',1)
insert into student values (2,'李四',21,'男',1)
insert into student values (3,'王五',19,'女',1)
insert into student values (4,'赵六',21,'男',2)
insert into student values (5,'孙七',18,'女',2)
insert into student values (6,'杨八',21,'男',3)
insert into student values (7,'刘九',20,'女',4)

/*2张表通过dept表中的did和student表中的sdept字段关联*/

2、要求查询计算机系并且是女生,年龄小于20岁的人的信息。可用如下语句:

select b.* from dept a,student b where a.did=b.sdept 
and b.ssex='女' and b.sage<20 and a.dname='计算机系'

如图,其中红线标注的地方就是多条件连接的方法:

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
帐号已注销
2011-10-27 · 超过14用户采纳过TA的回答
知道答主
回答量:67
采纳率:0%
帮助的人:28.3万
展开全部
例如:
select t1.a,t1.b,t2.c,t2.c from test1 t1 ,test2 t2 where t1.dateMonth= t2.dateMonth
这样就可以了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
chao3428
2011-10-27 · 超过12用户采纳过TA的回答
知道答主
回答量:32
采纳率:0%
帮助的人:36.3万
展开全部
select * from test1 a
left join test2 b on a.日期=b.日期 and a.号码=b.号码
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(8)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式