33

即使第二张桌子上没有匹配,我也想加入两张桌子。

表用户:

uid | name
1     dude1
2     dude2

表帐户:

uid | accountid | name
1     1           account1

我想要的表:

uid  | username | accountname
1      dude1      account1
2      dude2      NULL

我正在尝试的查询:

SELECT user.uid as uid, user.name as username, account.name as accountname
FROM user RIGHT JOIN account ON user.uid=accout.uid

我得到了什么:

uid  | username | accountname
1      dude1      account1
4

3 回答 3

37

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
于 2013-06-07T15:09:24.180 回答
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

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

于 2013-06-07T15:09:50.137 回答
5

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

SELECT user.uid as uid, user.name as username, account.name as accountname
FROM user LEFT JOIN account ON user.uid=account.uid

我相信应该这样做。

于 2013-06-07T15:10:45.967 回答