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

2015-05-17 22:34:15 +08:00
 ZengLeiPro

现在有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 做出来数据老是不对。

2816 次点击
所在节点    MySQL
7 条回复
zonghua
2015-05-17 23:11:20 +08:00
说不清楚啊,uml贴出来。范式什么的在学
thisnull
2015-05-17 23:11:51 +08:00
LZ意思一对多 A 表和 B C D表进行关联吗?
ZengLeiPro
2015-05-17 23:15:08 +08:00
@thisnull 是的
thisnull
2015-05-17 23:56:38 +08:00
哪里不对呢
thisnull
2015-05-18 00:01:59 +08:00
其实你感觉不对 是会出现一种情况
比如 A ID是苹果的 记录
B 有两条苹果的记录
C 有三条苹果的记录
所以你查询得出的结果是
有3条苹果记录 是吧..

---------------------------------
你可以加group by A.id
thisnull
2015-05-18 00:08:33 +08:00
你应该遇到重复结果的问题.不知道是不是LZ的答案
ZengLeiPro
2015-05-18 00:25:29 +08:00
@thisnull 解决了,还是谢谢

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

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

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

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

© 2021 V2EX