Postgresql 选择两个表的某些列,并将它们完全外部联接

Postgresql 选择两个表的某些列,并将它们完全外部联接,postgresql,Postgresql,我有两个表,它们只有id。我想加入他们 SELECT * FROM message m FULL OUTER JOIN (SELECT id, result, start, finish, message FROM message_execution) ex ON ex.id = m.id WHERE m.id = '1626' 看来上述说法是有效的。但是,我只需要第一个表中的几列,而不是全部。我试图指定列的名称,但没有成功 如何选择所需的列?不要使用选择*-选择所需的列: se

我有两个表,它们只有
id
。我想加入他们

SELECT *
FROM message m
FULL OUTER JOIN
  (SELECT id, result, start, finish, message
   FROM  message_execution) ex ON ex.id = m.id
WHERE  m.id = '1626'
看来上述说法是有效的。但是,我只需要第一个表中的几列,而不是全部。我试图指定列的名称,但没有成功


如何选择所需的列?

不要使用
选择*
-选择所需的列:

select m.col_1, m.col_2, 
       ex.*
from message m 
  full outer join (
    select id, result, start, finish, message
    from message_execution
  ) ex on ex.id = m.id
where m.id = 1626;
或者您可以将其简化为:

select m.col_1, m.col_2, 
       ex.id, ex.result, ex.start, ex.finish, ex.message
from message m 
  full outer join message_execution ex on ex.id = m.id
where m.id = 1626;
如果
id
定义为数字,则不应将其与字符串常量进行比较
'1626'
是一个字符串常量,
1626
是一个数字


请注意,
消息
表中的
where
条件实质上将完全联接转换为联接,因此上述条件相当于:

select m.col_1, m.col_2, 
       ex.id, ex.result, ex.start, ex.finish, ex.message
from message m 
  left outer join message_execution ex on ex.id = m.id
where m.id = 1626;

这是我的错误。Id是一个
bigint
。谢谢