簡體   English   中英

在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列都不全為null?

當您進行左連接時,在左表中找到但在右表中找不到的任何記錄都會導致右表中的所有列都被替換為空(反之亦然)。

如果看到空值,則左表中的記錄存在,但給定的用戶ID在右表中不存在,或者在右表中存在,但左表中不存在。

如果要從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

如果你只關心用戶在一個表中, join是沒有必要的。 只需從該表中選擇所有記錄。

我不是專業人士,請嘗試

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM