V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
MySQL 5.5 Community Server
MySQL 5.6 Community Server
Percona Configuration Wizard
XtraBackup 搭建主从复制
Great Sites on MySQL
Percona
MySQL Performance Blog
Severalnines
推荐管理工具
Sequel Pro
phpMyAdmin
推荐书目
MySQL Cookbook
MySQL 相关项目
MariaDB
Drizzle
参考文档
http://mysql-python.sourceforge.net/MySQLdb.html
Damon4V
V2EX  ›  MySQL

怎么用一句 sql 同时查询两张完全不同的表里的不同字段,合并为一条记录

  •  
  •   Damon4V · 2020-02-29 23:18:54 +08:00 · 3227 次点击
    这是一个创建于 1754 天前的主题,其中的信息可能已经有所发展或是发生改变。
    a 表结构:
    name count
    aa 10
    bb 11
    cc 12

    b 表结构:
    userid nickname
    1 bob
    2 damon

    怎么查出 a 表 name=aa 的 count 数据和 b 表 userid=1 的 nickname 数据
    如:
    count nickname
    10 bob

    使用 INNER JOIN 可以查出,但是遇到个问题,如果 a 表没有符合 name=aa 的记录,那么这时会查出 a 表所有的记录;

    为什么使用 LEFT JOIN 不能使用
    2 条回复    2020-03-15 12:31:48 +08:00
    zjq123
        1
    zjq123  
       2020-02-29 23:25:23 +08:00 via Android
    select count(1) as count, '' as nickname from a where name='aa'
    Union
    Select 0 as count , nickname from b where userid=1
    rekulas
        2
    rekulas  
       2020-03-15 12:31:48 +08:00
    "这时会查出 a 表所有的记录"
    加了 where 为什么会查出所有记录来,你用的盗版 mysql ?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4666 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 04:00 · PVG 12:00 · LAX 20:00 · JFK 23:00
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.