SQL联接:同类表

SQL联接:同类表,sql,sqlite,Sql,Sqlite,我正在尝试做一个SELECT查询,获取绘画和雕塑的标题以及相应的artistID 以下是模式: 绘画(绘画ID、标题、画家ID)p 雕塑(scluptureID、title、雕塑家ID) 我想我必须使用一个连接,但我不知道在不得到奇怪结果的情况下连接什么。如果我加入p.painterID=s.sculptorID的,那么我只会为既是画家又是雕塑家的艺术家获得结果。我想得到所有的雕塑和绘画,将它们视为“艺术”,并将画家和雕塑视为“艺术家”,这样每一行都将包含所有的值,用NULLs填充另一个表中不存

我正在尝试做一个
SELECT
查询,获取绘画和雕塑的标题以及相应的artistID

以下是模式:

绘画(绘画ID、标题、画家ID)p

雕塑(scluptureID、title、雕塑家ID)


我想我必须使用一个
连接
,但我不知道在不得到奇怪结果的情况下连接什么。如果我加入p.painterID=s.sculptorID的
,那么我只会为既是画家又是雕塑家的艺术家获得结果。我想得到所有的雕塑和绘画,将它们视为“艺术”,并将画家和雕塑视为“艺术家”,这样每一行都将包含所有的值,用
NULL
s填充另一个表中不存在的列(该模式在现实生活中稍大)。我该怎么做/我遗漏了什么?

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


这将选择
绘画
表格中的所有绘画,以及
雕塑
表格中的所有雕塑。
painterID
sculptorID
的别名都是
artistID
您不需要加入,您需要使用查询:


这将选择
绘画
表格中的所有绘画,以及
雕塑
表格中的所有雕塑。
painterID
sculptorID
的别名都是
artistID

您应该纠正
scluptures
中的
scluptures
。这也是一本你应该读的书。对于
雕塑
,您需要使用您应该更正的
scluptures
。这也是一本你应该读的书。你需要使用
SELECT title, painterID artistID
FROM Paintings
UNION ALL
SELECT title, sculptorID artistID
FROM Sculptures