当筛选条件在PostgreSQL中获取空时,从表中获取空列
我有两个表当筛选条件在PostgreSQL中获取空时,从表中获取空列,postgresql,filter,where,Postgresql,Filter,Where,我有两个表table1(id,name,type)和table2(id,source,destination) 当我运行查询时 SELECT name, source, destination FROM table1, table2 WHERE table1.id=table2.id 如果两个表之间没有id匹配,我是否仍然可以为源和目标获取空列?是的,您基本上需要一个外部联接,请记住始终使用显式ANSI联接语法,而不是隐式逗号语法进行联接。还可以
table1(id,name,type)
和table2(id,source,destination)
当我运行查询时
SELECT
name,
source,
destination
FROM
table1,
table2
WHERE
table1.id=table2.id
如果两个表之间没有id匹配,我是否仍然可以为源和目标获取空列?是的,您基本上需要一个
外部联接
,请记住始终使用显式ANSI联接
语法,而不是隐式逗号语法进行联接。还可以使用适当的表别名以避免歧义
SELECT
t1.name,
t2.source,
t2.destination
FROM
table1 t1 left outer join
table2 t2 ON t1.id = t2.id
看起来不错,让我试试这个并更新一下,我可以对两个以上的表执行相同的操作吗,当T1必须与t2连接,并且T1必须与t3连接时。。如果对于t2和t3表,我只需要空列,而对于其他表,它存在,t1主键用作过滤器,我不需要在那里设置列。应该在那里direct@JohnHumanyun:当然可以。阅读有关SQL连接和外部连接的更多信息,以便更好地理解。