0

と の 2 つのテーブルが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にないもの)。助言がありますか?

4

2 に答える 2

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レコードのみを提供します。これは、結合の視覚的な説明です

于 2012-09-10T16:48:13.763 に答える
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

** 
于 2012-09-10T17:14:14.003 に答える