Sql 此问题的正确查询应该是什么?
好了,伙计们,我有一个问题,我有4张表要总结 此数据库位于PostgreSQL上,模型关系为继承关系 表1:(人)Sql 此问题的正确查询应该是什么?,sql,database,postgresql,union,where-clause,Sql,Database,Postgresql,Union,Where Clause,好了,伙计们,我有一个问题,我有4张表要总结 此数据库位于PostgreSQL上,模型关系为继承关系 表1:(人) 表2:学生(从个人继承) 表3:教师(从个人继承) 我希望通过一个查询,获得代码所属的两个表之一的所有信息 我做不到 SELECT * FROM STUDENT WHERE ID = {{whatever}} 因为是静态的,我想在另一个表中搜索(ID{{{whatever}} 我试过了 SELECT * FROM STUDENT WHERE ID = {{whatever}
表2:学生(从个人继承)
表3:教师(从个人继承)
我希望通过一个查询,获得代码所属的两个表之一的所有信息 我做不到
SELECT *
FROM STUDENT
WHERE ID = {{whatever}}
因为是静态的,我想在另一个表中搜索(ID{{{whatever}}
我试过了
SELECT *
FROM STUDENT
WHERE ID = {{whatever}}
UNION ALL
SELECT *
FROM TEACHER
WHERE ID = {{whatever}}
但它不起作用,因为UNION
需要在两个表中具有相同数量的列
我怎样才能通过一个查询获得一个人的详细信息,无论是教授还是学生?或者我可以用什么方式进行查询?使用
UNION
是一个解决方案。当列不同时,您可以在输出中生成多个列,并在不可用的记录中用NULL
填充这些列
SELECT id, name, last_name, age, college, courses, null, null FROM student
UNION ALL
SELECT id, name, last_name, age, null, null, license, date_empl FROM teacher
使用
UNION
是一种解决方案。当列不同时,您可以在输出中生成多个列,并在不可用的记录中用NULL
填充它们
SELECT id, name, last_name, age, college, courses, null, null FROM student
UNION ALL
SELECT id, name, last_name, age, null, null, license, date_empl FROM teacher
你说“继承”是什么意思?Postgress支持对象表吗?或者它只是一个传统的关系数据库?那么,这三个表都存在吗?或者Person表是一个抽象的“模板”而不是一个表?你说“继承”是什么意思?Postgress支持对象表吗?或者它只是一个传统的关系数据库?那么,这三个表都存在吗?或者Person表是一个抽象的“模板”,而不是一个表?
SELECT *
FROM STUDENT
WHERE ID = {{whatever}}
UNION ALL
SELECT *
FROM TEACHER
WHERE ID = {{whatever}}
SELECT id, name, last_name, age, college, courses, null, null FROM student
UNION ALL
SELECT id, name, last_name, age, null, null, license, date_empl FROM teacher