首页 新闻 会员 周边 捐助

将多张表的查询结果最终显示在一个结果中,有没有什么好的办法

0
悬赏园豆:5 [已解决问题] 解决于 2018-02-27 17:11

有两张表,表中的字段个数和类型不一样,如果将两个表查询的结果,现在在同一个结果中呢,如下:

create table temp1(id int,name varchar(20))
create table temp2(id int,age int)

insert into temp1 values(1,'jack')
insert into temp1 values(2,'bob')
insert into temp2 values(1,20)
insert into temp2 values(1,30)

 

最终结果成这样:

id   name  age

1    jack    20

2    bob    30

sql
gyangjing的主页 gyangjing | 初学一级 | 园豆:4
提问于:2018-02-25 17:51
< >
分享
最佳答案
0

两种方式:

1.新建外键约束(通过外键使两张表关联起来,接着使用JOIN语法就能关联查询)

2.新建关系表,将原本需要通过外键进行约束的关系存入另外的单独表中,然后做关联查询。

通常第一种比较简便,第二种也常用,因为有的时候给表加字段不如建关系(参考面向对象原则:对扩展开放,对修改关闭)

 

收获园豆:3
顾星河 | 大侠五级 |园豆:7281 | 2018-02-26 09:05

谢谢!

gyangjing | 园豆:4 (初学一级) | 2018-02-27 17:11
其他回答(2)
0

可以使用UNION,参考 SQL syntax問題

dudu | 园豆:30778 (高人七级) | 2018-02-25 17:57

试过了,不行的,字段类型不一致

支持(0) 反对(0) gyangjing | 园豆:4 (初学一级) | 2018-02-25 18:45

@gyangjing: 可以在SELECT时进行类型转换

支持(0) 反对(0) dudu | 园豆:30778 (高人七级) | 2018-02-25 19:17
0

如果你想根据id来匹配出年龄的话可以select t2.id as id,name,age from temp1 join temp2 as t2;

但你上面temp2里面两个id都是1,我就不是很明白了

收获园豆:2
随风行云 | 园豆:936 (小虾三级) | 2018-02-25 19:21

你的回答给了我启发

支持(0) 反对(0) gyangjing | 园豆:4 (初学一级) | 2018-02-27 17:11
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册