moana
V2EX  ›  问与答

SQL 嵌套查询并连接显示,

  •  
  •   moana · Jan 31, 2020 · 2255 views
    This topic created in 2468 days ago, the information mentioned may be changed or developed.

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

    有两个数据库 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 = '李强')

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

    zhuzhibin
    zhuzhibin
    Jan 31, 2020 via iPhone❤️1
    1
    这不是普通的联表查询?是你想太复杂?还是我想简单了?
    moana
    moana
    OP
    Feb 1, 2020
    2
    @zhuzhibin 你没想复杂 就是普通的联表查询 我就是个渣渣
    moana
    moana
    OP
    Feb 1, 2020
    3
    A 表和 B 表有个共同字段 number.

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

    理论自然查询就行.

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

    我想问下在这个前提下,这个语句怎么写会比较好
    Mac
    Mac
    Feb 1, 2020❤️1
    4
    select
    name,
    gender,
    number,
    class,
    age
    from a
    left join b on a.number=b.number

    这是 mysql 的联表查询,Postgresql 你自己看文档,应该差不太多。
    rpxwa
    rpxwa
    Feb 1, 2020❤️1
    5
    没看懂「你想得到的结果表」和「李刚」有什么关系。

    我猜?

    select * from B left join A on B.number=A.number
    moana
    moana
    OP
    Feb 1, 2020
    6
    谢谢各位 是我自己想多了.

    问题解决了
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   5178 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 39ms · UTC 06:37 · PVG 14:37 · LAX 22:37 · JFK 01:37
    ♥ Do have faith in what you're doing.