即使第二个表上的行不存在,也要正确连接

coi*_*iso 28 mysql sql

我想加入两个表,即使第二个表没有匹配.

表用户:

uid | name
1     dude1
2     dude2
Run Code Online (Sandbox Code Playgroud)

表帐户:

uid | accountid | name
1     1           account1
Run Code Online (Sandbox Code Playgroud)

我想要的表:

uid  | username | accountname
1      dude1      account1
2      dude2      NULL
Run Code Online (Sandbox Code Playgroud)

我正在尝试的查询:

SELECT user.uid as uid, user.name as username, account.name as accountname
FROM user RIGHT JOIN account ON user.uid=accout.uid
Run Code Online (Sandbox Code Playgroud)

我得到了什么:

uid  | username | accountname
1      dude1      account1
Run Code Online (Sandbox Code Playgroud)

Gon*_*o.- 33

使用Left Join替代

SELECT user.uid as uid, user.name as username, account.name as accountname
FROM user LEFT JOIN account ON user.uid=accountid.uid
Run Code Online (Sandbox Code Playgroud)


Fab*_*bio 5

尝试LEFT JOIN查询

SELECT user.uid as uid, user.name as username, account.name as accountname
FROM user 
LEFT JOIN account 
ON user.uid=accout.uid
Run Code Online (Sandbox Code Playgroud)

我想让你看看这个查询的可视化表示JOIN


Bre*_*ier 5

右联接保留第二个表中的所有结果(它将所有结果保留在右侧表中),您想要左联接,或者在联接子句中交换用户和帐户的位置。

SELECT user.uid as uid, user.name as username, account.name as accountname
FROM user LEFT JOIN account ON user.uid=account.uid
Run Code Online (Sandbox Code Playgroud)

我相信应该这样做。