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
。谢谢