Mysql SQL-在两个表中检索
如果我使用普通数据连接Mysql SQL-在两个表中检索,mysql,sql,Mysql,Sql,如果我使用普通数据连接 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 问题是,如何在表2中获得三条记录(按id分组)。 如果没有足够的三条记录,它将显示null
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
问题是,如何在表2中获得三条记录(按id分组)。 如果没有足够的三条记录,它将显示null 我希望在不使用
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
您可以使用左连接来实现该结果 Id |列|编号
ab | A | 3 ab | A | 5 ab | A | 8 bc | B | 1 bc | B |空 bc | B |空 使用以下T-SQL语句:
SELECT t1.Id, t1.[Column], t2.Number
FROM table1 t1
LEFT JOIN table2 t2 on t1.Id=t2.Id
Jeff Atwood可能有一篇关于连接的权威文章,关于左连接呢?似乎是一个外部连接。但是我认为您没有正确考虑数据。例如,您如何知道没有4行,ab也没有缺少一行?我认为您应该应用左连接。对于“ab rows=bc rows”,您应该从代码中处理这一点.