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