Sql 减去连接
Sql minus with joins
我有点受困于这样的场景我有两个 table 分别命名为 messages
和 message_fields
具有这样的关系 message_fields
持有 message_id 并使用它我可以获得消息的 name
我正在尝试比较两个相同的 Scemas table像这样
select Message_id,field_id from DB1.MESSAGE_FIELDS a minus select
Message_id,field_id from DB2.MESSAGE_FIELDS
但是为此我还需要知道 name
我知道我可以在两个查询中将显示名称放在 select 中,但我不想减去 name
在不影响当前查询的情况下,如何获取 Db1.message 微粒 message_id
的名称
我尝试使用 INNER/LEFT/RIGHT JOINS 但没有用
这是你想要的吗?
with mf as (
select Message_id,field_id from DB1.MESSAGE_FIELDS a
minus
select Message_id,field_id from DB2.MESSAGE_FIELDS
)
select mf.*, m.name
from mf join
messages m
on mf.message_id = m.message_id;
我有点受困于这样的场景我有两个 table 分别命名为 messages
和 message_fields
具有这样的关系 message_fields
持有 message_id 并使用它我可以获得消息的 name
我正在尝试比较两个相同的 Scemas table像这样
select Message_id,field_id from DB1.MESSAGE_FIELDS a minus select Message_id,field_id from DB2.MESSAGE_FIELDS
但是为此我还需要知道 name
我知道我可以在两个查询中将显示名称放在 select 中,但我不想减去 name
在不影响当前查询的情况下,如何获取 Db1.message 微粒 message_id
我尝试使用 INNER/LEFT/RIGHT JOINS 但没有用
这是你想要的吗?
with mf as (
select Message_id,field_id from DB1.MESSAGE_FIELDS a
minus
select Message_id,field_id from DB2.MESSAGE_FIELDS
)
select mf.*, m.name
from mf join
messages m
on mf.message_id = m.message_id;