SQL 嵌套查询并连接显示,

2020-01-31 23:36:05 +08:00
 moana

数据库多年前学过,全部忘完了,有个嵌套查询并连接显示的基础问题请教下大家.

有两个数据库 A 和 B

其中 A 数据库内容为

name gender number
李强 男 001 李刚 男 002 李德 男 003 李倩 女 004

B 数据库内容为

number class age 001 12 15 003 10 10 002 09 11 004 10 14

我想通过查询 name 这个字段,进行嵌套及关联查询,显示如下结果

name gender number class age 李强 男 001 12 15 李刚 男 002 09 11 李德 男 003 10 10 李倩 女 004 10 14


语句要怎么写呢??

我的数据库环境是 Postgresql.

嵌套部分我会写,select * from B where number in ( select number from A where name = '李强')

但是数据库是自己摸索的,整个联合显示部分这么写呢?

1186 次点击
所在节点    问与答
6 条回复
zhuzhibin
2020-01-31 23:42:59 +08:00
这不是普通的联表查询?是你想太复杂?还是我想简单了?
moana
2020-02-01 00:07:45 +08:00
@zhuzhibin 你没想复杂 就是普通的联表查询 我就是个渣渣
moana
2020-02-01 00:20:20 +08:00
A 表和 B 表有个共同字段 number.

我需要从数据库 A 的字段 Name 开始查询,查询到 Name 对应的所有 number 后,再把 number 放到 B 表里面进行查询,最后把 A 的结果和 B 的结果全部汇总出来.

理论自然查询就行.

但是现在一个问题是 A 表的数据量非常非常非常大,所以我只在 Name 上面建了索引,B 表里面只在 number 上面建了索引.

我想问下在这个前提下,这个语句怎么写会比较好
Mac
2020-02-01 04:37:42 +08:00
select
name,
gender,
number,
class,
age
from a
left join b on a.number=b.number

这是 mysql 的联表查询,Postgresql 你自己看文档,应该差不太多。
rpxwa
2020-02-01 04:40:10 +08:00
没看懂「你想得到的结果表」和「李刚」有什么关系。

我猜?

select * from B left join A on B.number=A.number
moana
2020-02-01 11:40:48 +08:00
谢谢各位 是我自己想多了.

问题解决了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/641292

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX