2016-09-20 19 views
0

我剛開始在SQL世界,所以我有一個非常noob問題:SQL:從兩個表一起顯示的數據

我有2個表:

  • 客戶(列:CLIENT_ID和名)
  • 賬戶(列:ACCOUNT_ID和CLIENT_ID)

,我需要編寫一個查詢,顯示所有客戶的賬戶。

但問題是,並非所有客戶端都有帳戶,如果客戶端沒有:我如何顯示client_id,name和NULL爲account_id列?

+0

提示:'LEFT JOIN'。我也刪除了無關的數據庫標籤。 –

+0

另一個提示:你不需要PL/SQL來做到這一點,只需要SQL。 – sstan

+0

好了,我編輯了後期更改的PL/SQL到SQL,修正了幾個拼寫錯誤,刪除了「thank U <3」(注意:這個網站的標準是不包括這樣的東西......或者像n00b這樣的東西 - 爲什麼零和不是o的?)最重要的是對於OP(就是你,胡安!) - 我將「字段」更改爲「列」以保持關係術語。 – mathguy

回答

1

這個查詢應該工作:

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值的行。

有用的鏈接:https://www.techonthenet.com/oracle/joins.php

+0

您的第二個選擇應該被刪除或更改爲右[OUTER] JOIN。因爲它依然是賬戶和客戶之間的內部聯接。然而,第一個查詢應該返回他想要的結果。 – Matt

0

嘗試此查詢將返回客戶名稱客戶ID,並顯示空的那些客戶誰沒有ACCOUNTID。

select clients.name, accounts.account_id from accounts left join clients on 
    accounts.clintid=clients.client_id 

check if you are wanting this

相關問題