2017-05-15 13 views
0

私は彼らの主キーを持つ3つのテーブルがあります:私はSQL Select複合PK/FKテーブルを参照する必要がありますか?

DEPTinPLANT 
----------- 
{p_Id,d_Id} 

として複合キーPK/FKを有するテーブルを設計し

1.) A department exist in many plants. 

いる:

PLANT  DEPT  HOLDER 
------  ------ ------ 
pId  dId  hId 

後は、それらの関係ですが別の関係、

2.) A holder can be assigned to many departments of a plant. 
今のSelect文でHOLDERinDEPTからデータを抽出し、複合DEPTinPLANTからPK/FKとホルダテーブルと

HOLDERinDEPT 
------------ 
{{p_Id,d_Id},h_ID} 

、私は

select * 
from HOLDERinDEPT 
join PLANT on p_Id = pid 
join DEPT on d_Id = dId 
join HOLDER on h_id = hId 

を持って、この正しいですか、それは最初DEPTinPLANTを参照するために必要とされますテーブル、次に対応するベーステーブル?

+0

テーブルを作成し、サンプルデータを挿入してクエリを実行しようとしましたか? – jarlh

+0

はいすべてがOKです。 – Tres

答えて

1
select * 
from HOLDERinDEPT hd 
join PLANT p on p_Id = pid 
join DEPT d on d_Id = dId 
join HOLDER h on h_id = hId 

これは正しいです。 DEPTinPLANTを参照する必要はありません

+0

注目。私が参照をスキップすることを心配しているので、後でいくつかの矛盾が発生するでしょう。 – Tres

関連する問題