访问权限 - 按字段

时间:2017-10-24 08:48:29

标签: sql sorting ms-access

我(见下文)有一张(虚构的)星星表,然后是两张表,显示了同样虚构的卫星,可能是行星或小行星带。分别为tblStarstblAsteroidstblPlanets。两个卫星表中的每一个都有一个位置字段,在两个表中是唯一的 - 我的意思是ID为1的恒星在位置1,2等处只有一颗卫星可能位于这两个表中的任何一个但不是都。我想按照报告中的位置顺序对卫星进行排序,但无法看到对这些字段组合进行排序的方法:

tblAsteroid:
Asteroid ID    Position
1               1
2               3

tblPlanet:
Planet ID       Position       Biome
1               2              Ice

Giving:
Position        AsteroidOrPlanet     Biome
1               Asteroid             N/A
2               Planet               Ice
3               Asteroid             N/A

为了避免疑问,我认识到这个问题是由我的数据库设计中的一个缺陷引起的,我应该有一个tblSatellite包含该位置,并且在{1}中有一个到多个tblStartblAsteroidtblPlanet在1到0-1之间。我已经解决了这个问题,我只是想知道是否是可能的。

1 个答案:

答案 0 :(得分:2)

要获得组合列表,无论如何都需要UNION查询。这可以按公共字段排序。

SELECT Position, 'Asteroid' AS AsteroidOrPlanet, 'N/A' AS Biome
FROM tblAsteroid

UNION ALL

SELECT Position, 'Planet' AS AsteroidOrPlanet, Biome
FROM tblPlanet

ORDER BY Position