【发布时间】:2014-04-18 06:02:29
【问题描述】:
如果我使用普通数据连接
select table1.Id , Column , Number from table1, table2 where
table1.Id = table2.Id
结果:
_____________
Id Column Number
ab | A | 3
ab | A | 5
ab | A | 8
bc | B | 1
问题,如何在 table2 中获取三条记录(按 id 分组)。 如果没有足够的三条记录,则显示为空。
不使用PL/SQL有我想得到的预期结果
Id Column Number
ab | A | 3
ab | A | 5
ab | A | 8
bc | B | 1
bc | B | null
bc | B | null
这是表格信息。 谢谢你的帮助
表1
Fields: Id,Column
data:
ab | A
bc | B
(id是talbe1的主键,table2没有主键
table2
Fields:Id,Number
ab | 3
ab | 5
ab | 8
bc | 1
【问题讨论】:
-
Jeff Atwood 可能在 blog.codinghorror.com/a-visual-explanation-of-sql-joins 上发布了关于联接的权威帖子
-
左连接怎么样?
-
似乎是一个外部连接.. 但我认为您没有正确考虑您的数据.. 例如?你怎么知道没有 4 行并且 ab 也没有丢失一个?
-
我认为你应该申请左联接。对于'ab rows = bc rows',你应该从你的代码中处理这个。