如何在一列上连接两个表,同时保留另一列中的值?

How do I join two tables on one column while preserving the values in another column?

我有两张桌子。

links_table

URL                     Links
example.com/1           6
example.com/2           2
example.com/3           4

pages_table

URL
example.com/2
example.com/4

如何以保留链接数量的方式合并所有 URL?

想要的结果:

URL                     Links
example.com/1           6
example.com/2           2
example.com/3           4
example.com/4           null

像这样:(虽然不是 100% 确定)

SELECT * 
FROM links_table l 
LEFT OUTER JOIN pages_table p ON p.url = l.url 
UNION 
SELECT * 
FROM links_table l 
RIGHT OUTER JOIN pages_table p ON p.url = l.url 
WHERE l.url IS NULL; 

在 MySQL 中,您可以使用 UNION ALL 和聚合模拟 full join

select url, max(links) links
from (
    select url, links from links_table
    union all
    select url, null from pages_table
) t
group by url

您似乎想要 return links_table 中的所有行加上 pages_table 中不在 table 中的其他行。我只会使用 union all:

select l.url, l.links
from links_table l
union all
select p.url, null
from pages_table p
where not exists (select 1 from links_table where l.url = p.url);