当筛选条件在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连接和外部连接的更多信息,以便更好地理解。