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