我有两个表:dba_account
和dba_account_password
。现在我正在尝试从两个表中填充信息。我正在使用此查询。
SELECT da.account_name, da.account_id, da.status, da.manager_firstname,
dap.live_password_change, dap.dev_password_change FROM dba_account da INNER JOIN
dba_account_password dap ON da.account_id = dap.account_id
现在,事情是dba_account有1328条记录(account_name),而dba_account_password只有270条记录。当我运行此查询时,它只显示270条记录。但我也想显示其他用户名(不在dba_account_password中的用户名)。有什么建议吗?
答案 0 :(得分:2)
更改为LEFT JOIN
SELECT da.account_name,
da.account_id,
da.status,
da.manager_firstname,
dap.live_password_change,
dap.dev_password_change
FROM dba_account da
LEFT JOIN dba_account_password dap
ON da.account_id = dap.account_id
INNER JOIN
只会为您提供两个表中匹配的记录。这是一个很好的Visual Explanation of Joins
答案 1 :(得分:1)
在这种情况下你可以使用左连接
SELECT da.account_name, da.account_id, da.status, da.manager_firstname,
dap.live_password_change, dap.dev_password_change FROM dba_account da LEFT JOIN
dba_account_password dap ON da.account_id = dap.account_id
左连接的小描述
**
table 1
userid username
1 ABC
2 PQR
3 DEF
table2
userid userRole
1 ACCOUNTANT
2 HO
RESULT OF LEFT JOIN :-
left join on table1.userid=table2.userid
userid username userrole
1 ABC ACCOUNTANT
2 PQR HO
3 DEF
**