mysql 上的完全外部联接?

Full outer join on mysql?

我有 2 个表,我想让它们完全外连接。

我正在使用以下查询:

select * from permissions 
left join user_news_permission on permissions.userID = user_news_permission.userID
union
select * from permissions 
right join user_news_permission on permissions.userID = user_news_permission.userID

但它使两个 userID 列有些为空有些不是。

如何使一个 userID 列不为空?

当您进行左联接时,在左侧 table 而在右侧 table 中找不到的任何记录将导致右侧 table 中的所有列都替换为空值 (右联接反之亦然)。

如果您看到空值,则左侧 table 中存在具有给定用户 ID 的记录,而右侧 table 中不存在记录,或者右侧 [=28] 中存在记录=]左边不存在table.

如果您要查找来自 permissions 的用户 ID 和来自 user_news_permission 的任何信息,并集的前半部分就足够了:

select * from permissions 
left join user_news_permission on permissions.userID = user_news_permission.userID

如果您要查找来自 user_news_permission 的用户 ID 和来自 permissions 的任何信息,并集的后半部分就足够了:

select * from permissions 
right join user_news_permission on permissions.userID = user_news_permission.userID

如果您只关心一个 table 中的用户,则不需要 join。 select 来自 table 的所有记录。

我不是专业人士但是试试这个

SELECT* FROM permissions
RIGHT JOIN user_news_permission
ON permissions.userID = user_news_permission.userID;