选择内部联接查询

时间:2012-09-10 16:46:56

标签: mysql inner-join

我有两个表:dba_accountdba_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中的用户名)。有什么建议吗?

2 个答案:

答案 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

**