我(见下文)有一张(虚构的)星星表,然后是两张表,显示了同样虚构的卫星,可能是行星或小行星带。分别为tblStars
,tblAsteroids
和tblPlanets
。两个卫星表中的每一个都有一个位置字段,在两个表中是唯一的 - 我的意思是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}中有一个到多个tblStar
与tblAsteroid
和tblPlanet
在1到0-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