我剛開始在SQL世界,所以我有一個非常noob問題:SQL:從兩個表一起顯示的數據
我有2個表:
- 客戶(列:CLIENT_ID和名)
- 賬戶(列:ACCOUNT_ID和CLIENT_ID)
,我需要編寫一個查詢,顯示所有客戶的賬戶。
但問題是,並非所有客戶端都有帳戶,如果客戶端沒有:我如何顯示client_id
,name
和NULL爲account_id
列?
我剛開始在SQL世界,所以我有一個非常noob問題:SQL:從兩個表一起顯示的數據
我有2個表:
,我需要編寫一個查詢,顯示所有客戶的賬戶。
但問題是,並非所有客戶端都有帳戶,如果客戶端沒有:我如何顯示client_id
,name
和NULL爲account_id
列?
這個查詢應該工作:
SELECT *
FROM accounts
LEFT [OUTER] JOIN clients
ON accounts.client_id = clients.client_id;
如果不試試這個:
SELECT *
FROM accounts
LEFT [OUTER] JOIN clients
ON accounts.client_id = clients.client_id WHERE clients.client_id IS NOT NULL;
這些都是普通的SQL查詢,我的意思是他們是不是PL-SQL具體。 LEFT [OUTER] JOIN
將只返回accounts
表的列。 [OUTER]
關鍵字是可選的,它從數據庫版本推遲到版本。 ON accounts.client_id = clients.client_id
將在兩個表中匹配client_id
列。最後,WHERE clients.client_id IS NOT NULL
部分應該阻止client_id
單元中NULL
值的行。
您的第二個選擇應該被刪除或更改爲右[OUTER] JOIN。因爲它依然是賬戶和客戶之間的內部聯接。然而,第一個查詢應該返回他想要的結果。 – Matt
提示:'LEFT JOIN'。我也刪除了無關的數據庫標籤。 –
另一個提示:你不需要PL/SQL來做到這一點,只需要SQL。 – sstan
好了,我編輯了後期更改的PL/SQL到SQL,修正了幾個拼寫錯誤,刪除了「thank U <3」(注意:這個網站的標準是不包括這樣的東西......或者像n00b這樣的東西 - 爲什麼零和不是o的?)最重要的是對於OP(就是你,胡安!) - 我將「字段」更改爲「列」以保持關係術語。 – mathguy