2012-09-10 140 views
0

我有兩個表: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

更改爲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

+0

嘿感謝...得到它。感謝你的幫助... – ashah142

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 

**