› 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
ZengLeiPro
V2EX  ›  MySQL

急求一个 Mysql 的多表合并问题

  •  
  •   ZengLeiPro · May 17, 2015 · 3461 views
    This topic created in 4167 days ago, the information mentioned may be changed or developed.

    现在有A、B、C、D四张表,每张表都有「ID」这个字段。
    A表的「ID」字段是:
    苹果
    梨
    橘子
    香蕉
    菠萝
    ……
    不为空且不重复。

    B、C、D表的「ID」都有重复,如B表可能存在多个「苹果」、C表可能存在多个「菠萝」等情况。且每个表不一定都包含A表里的所有种类。

    现在需要合并这四个表为一张表,变成如下形式:
    A B C D
    苹果 苹果 苹果 null
    苹果 苹果 null null
    梨 null 梨 梨
    梨 null null 梨
    梨 null null 梨
    ……

    不知道说明白了没有,感觉不复杂,但是用 left join 做出来数据老是不对。

    7 replies  •  2015-05-18 00:25:29 +08:00
    zonghua
        1
    zonghua  
       May 17, 2015 via iPhone
    说不清楚啊,uml贴出来。范式什么的在学
    thisnull
        2
    thisnull  
       May 17, 2015   ❤️ 1
    LZ意思一对多 A 表和 B C D表进行关联吗?
    ZengLeiPro
        3
    ZengLeiPro  
    OP
       May 17, 2015
    @thisnull 是的
    thisnull
        4
    thisnull  
       May 17, 2015
    哪里不对呢
    thisnull
        5
    thisnull  
       May 18, 2015   ❤️ 1
    其实你感觉不对 是会出现一种情况
    比如 A ID是苹果的 记录
    B 有两条苹果的记录
    C 有三条苹果的记录
    所以你查询得出的结果是
    有3条苹果记录 是吧..

    ---------------------------------
    你可以加group by A.id
    thisnull
        6
    thisnull  
       May 18, 2015
    你应该遇到重复结果的问题.不知道是不是LZ的答案
    ZengLeiPro
        7
    ZengLeiPro  
    OP
       May 18, 2015
    @thisnull 解决了,还是谢谢
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1000 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 22:06 · PVG 06:06 · LAX 15:06 · JFK 18:06
    ♥ Do have faith in what you're doing.