Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql SQL-在两个表中检索_Mysql_Sql - Fatal编程技术网

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”,您应该从代码中处理这一点.