Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.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
SQL从三个表中选择数据_Sql_Sql Server - Fatal编程技术网

SQL从三个表中选择数据

SQL从三个表中选择数据,sql,sql-server,Sql,Sql Server,我有一个问题,我需要从三个不同的表中选择数据,并以指定的方式格式化。我试过加入工会。。。和各种select语句,但无法获得我想要的格式 各表如下: 表1(面积表) 表2(现场表) 表3(位置表) 现在,我需要从所有三个表中选择数据以生成以下内容: AreaID |AreaName |SiteID | SiteName | LocationID | LocationName ------- |-----------|-----------|---------- -|-

我有一个问题,我需要从三个不同的表中选择数据,并以指定的方式格式化。我试过加入工会。。。和各种select语句,但无法获得我想要的格式

各表如下:

表1(面积表)

表2(现场表)

表3(位置表)

现在,我需要从所有三个表中选择数据以生成以下内容:

AreaID  |AreaName   |SiteID     | SiteName   |  LocationID  | LocationName    
------- |-----------|-----------|---------- -|--------------|----------  
 1      | England   | 1         | London     | 1            | Sussex    
 1      | England   | 1         | London     | 2            | Mitcham   
 2      | Wales     | 3         | Cardiff    | 3            | Canton  
 3      | Scotland  | 3         | Edinburgh  | NULL         | NULL      
 4      | Ireland   | NULL      | NULL       | NULL         | NULL
因此,基本上,位置条目需要场地实体,场地实体需要面积。但一个区域不需要场地,场地也不需要位置

希望这是有意义的


如果有人能帮忙,我将不胜感激

这似乎是一个直接的左连接:

SELECT a.ID AS AreaID, a.Area AS AreaName, 
       s.ID AS SiteID, s.Site AS SiteName, 
       l.ID AS LocationID, l.Location AS LocationName
FROM Area a
     LEFT JOIN Site s ON s.AreaID = a.ID
     LEFT JOIN Location l ON l.AreaID = a.ID

希望这有帮助

这看起来像是一个直接的左连接:

SELECT a.ID AS AreaID, a.Area AS AreaName, 
       s.ID AS SiteID, s.Site AS SiteName, 
       l.ID AS LocationID, l.Location AS LocationName
FROM Area a
     LEFT JOIN Site s ON s.AreaID = a.ID
     LEFT JOIN Location l ON l.AreaID = a.ID
希望这有帮助

您尝试过左连接吗?对于他们来说,这似乎是一个相当简单的应用程序。您是否尝试过左连接?对于他们来说,这似乎是一个相当简单的应用程序。
AreaID  |AreaName   |SiteID     | SiteName   |  LocationID  | LocationName    
------- |-----------|-----------|---------- -|--------------|----------  
 1      | England   | 1         | London     | 1            | Sussex    
 1      | England   | 1         | London     | 2            | Mitcham   
 2      | Wales     | 3         | Cardiff    | 3            | Canton  
 3      | Scotland  | 3         | Edinburgh  | NULL         | NULL      
 4      | Ireland   | NULL      | NULL       | NULL         | NULL
SELECT a.ID AS AreaID, a.Area AS AreaName, 
       s.ID AS SiteID, s.Site AS SiteName, 
       l.ID AS LocationID, l.Location AS LocationName
FROM Area a
     LEFT JOIN Site s ON s.AreaID = a.ID
     LEFT JOIN Location l ON l.AreaID = a.ID