【发布时间】:2014-12-24 11:43:20
【问题描述】:
假设这是可能的,我正在寻找一种方法(MYSQL 查询)来连接所有返回的值都不重复的表。我想加入三个表(A、B、C)。这三个表的共同列是 user_id。 user_id 在表 A 中是唯一的 - 用户在表 A 中只有一行/记录。但是,user_id 在表 B 和 C 中不是唯一的 - 用户在表 B 和 C 中可能有多个记录/行。已经尝试过 INNER、LEFT 和 RIGHT JOINS 以及 UNION 但是,它复制了表 A 中的结果以匹配表 B 和 C 中的结果。
Row 1: Value1(from A) Value1(from B) Value1(from C)
Row 2: Value1(from A) Value2(from B) Value2(from C)
Row 3: Value1(from A) Value3(from B) Value3(from C)
我想避免这种情况。相反,我更喜欢:
Row 1: Value1(from A) Value1(from B) Value1(from C)
Value2(from B) Value2(from C)
Value3(from B) Value3(from C)
Row 2: Value2(from A) Value1(from B) Value1(from C)
Value2(from B) Value2(from C)
Value3(from B) Value3(from C)
提前感谢您的帮助。
【问题讨论】:
-
这是意料之中的。您遇到的是显示问题,而不是查询问题。
-
为您的问题提供答案的一个问题是可能需要的列数不确定。您是否知道是否可以提前知道表 B 和 C 中任意用户的行数是否受到合理限制?
-
Joe,我希望我能理解您的问题:用户在表 B 和 C 中可能拥有的行数不应超过 10 或 20 行。用户将在表 B 中列出他们的教育(学校、就读年限和获得的学位)。他们将在表 C 中列出他们的工作经历(类似于简历样式)。