1

我正在尝试进行SELECT查询以获取绘画和雕塑的标题以及相应的艺术家 ID。

这是架构:

Paintings(paintingID, title, painterID) p

Sculptures(scluptureID, title, sculptorID) s

我想我必须使用 a JOIN,但我不知道要加入什么而不得到奇怪的结果。如果我加入ON p.painterID=s.sculptorID,那么我只会为既是画家又是雕塑家的艺术家获得结果。我想得到所有的雕塑和绘画,把它们当作“艺术”,把画家和雕塑当作“艺术家”,这样每一行都会包含所有的值,用NULLs 填充另一个表中不存在的列(架构在现实生活中有点大)。我将如何去做/我错过了什么?

4

1 回答 1

4

您不需要加入,您需要使用UNION查询:

SELECT title, painterID artistID
FROM Paintings
UNION ALL
SELECT title, sculptorID artistID
FROM Sculptures

这将从桌子上选择所有画作,Paintings从桌子上选择所有雕塑Sculptures。两者painterIDsculptorID都有一个别名artistID

于 2013-05-03T20:48:20.100 回答