SQL Join:同类表

时间:2013-05-03 20:41:28

标签: sql sqlite

我正在尝试制作一个SELECT查询,以获取绘画和雕塑的标题以及相应的艺术家ID。

这是架构:

Paintings(paintingID, title, painterID) p

Sculptures(scluptureID, title, sculptorID) s

我想我必须使用JOIN,但我不知道要加入什么而不会得到奇怪的结果。如果我加入ON p.painterID=s.sculptorID,那么我只能获得画家和雕塑家的艺术家的成果。我希望获得所有的雕塑和绘画,将它们视为“艺术”,并将画家和雕塑视为“艺术家”,以便每一行都包含所有的值,填充另一个表中不存在的列{{{ 1}} s(现实生活中的架构有点大)。我该怎么做呢/我错过了什么?

1 个答案:

答案 0 :(得分:4)

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

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

这将选择Paintings表格中的所有绘画作品以及Sculptures表格中的所有雕塑作品。 painterIDsculptorID都有别名artistID