-5

銀行データベース スキーマ:

account    (account_number, branch_name, balance) 
branch     (branch_name, branch_city, assets) 
customer   (customer_name customer_street, customer_city) 
loan       (loan_number, branch_name, amount) 
deposito   (customer_name, account_number) 
borrower   (customer_name, loan_number) 

借り手のaccount_numberを知る方法????

4

2 に答える 2

4

あなたのコメントに基づいて、テーブル経由でcustomers関連しているようです。その場合は、次を使用できます。accountsdepositor

select c.customer_name,
  a.account_number,
  a.balance
from customer c
inner join depositor d
  on c.customer_name = d.customer_name
inner join account a
  on d.account_number = a.account_number

デモで SQL Fiddle を参照してください

借り手の口座番号を知りたい場合は、JOIN をborrowerテーブルに追加します。

select c.customer_name,
  a.account_number,
  a.balance
from customer c
inner join depositor d
  on c.customer_name = d.customer_name
inner join account a
  on d.account_number = a.account_number
inner join borrower b
  on c.customer_name = b.customer_name

データベースの設計にいくつかの問題があるようです。を知りたい場合は、現在の構造に基づいて、borrowersに参加しdepositorて口座番号を取得するか、loanテーブルに参加してローンを口座に関連付ける必要があります。

loanテーブルに参加すると、クエリは次のようになります。

select b.customer_name,
  a.account_number
from borrowers b
inner join loan l
  on b.loan_number = l.loan_number
inner join account a
  on l.branch_number = a.branch_number

ただし、問題は、loanテーブルが にaccountのみ参加できることbranch_numberです。このブランチ番号は複数のアカウントに関連付けられます。borrowerをそれぞれで識別する列が必要loanです。これが欠落しているため、現在、各借り手の口座番号を見つける方法がありません。

于 2013-03-13T13:15:35.173 に答える