【发布时间】:2014-07-25 13:16:45
【问题描述】:
我有以下场景
table1 - 有 1 条记录为 1001(主键)
table2 - 有 3 条具有相同 ID (1001) 的记录 - 不是主键
table3 - 具有相同 id (1001) 的 3 条记录 - 不作为主键
前 2 个表的连接返回 3 行(很好)。但是,如果我加入 table3,那么它会返回 9 行。我知道加入工作和预期结果如何。
我只需要 3 行的结果。如下图所示
id name age sex city
1001 Jhon 20 A Z
1001 Jhon 20 B Y
1001 Jhon 20 C X
【问题讨论】:
-
请准备一个sqlfiddle 的例子,你会更快得到答案。
-
table2和table3是什么关系?您如何知道应该为 table2 的第一个值选择 table3 的三个值中的哪一个?如果你不这样做,那么 9 行是正确的数字。
-
记录只是被复制了,不同的或分组的可以解决问题吗?样本数据将有助于获得预期的结果。
-
为了得到这个,你必须对性别和城市做出决定。你用什么逻辑来判断 Z 市与性别 A 相关联?
-
性别和城市是独立的。它们可以是任何组合。两者都依赖于 id 1001 而不是彼此。希望我清除了。