2016-07-18 21 views
0

2つのテーブルを接合テーブルに結合するのがちょっと難しいです。私は3つのテーブルロールの許可roles_permissions_dtにリンクされている私のジャンクションテーブルです。2つのテーブルを接合テーブルに結合する方法

ロール

id - PK 

role_type - VARCHAR 

権限

id - PK 

permission_type - VARCHAR 

roles_permissions_dt

id - PK 
role_id - FK REFERENCES(roles) 
permission_id - FK REFERENCES(permissions) 

これらは私が作成した値ロール許可テーブル。

役割スクリーンショット

roles

権限スクリーンショット

permissions

私は1idおよびで役割テーブルに参加したいですパーミッションid1からroles_permissions_tableのテーブル。内部結合を使用してこれをどのように達成できますか?

これは私の試行クエリです。しかし、私のジャンクションテーブルにこれを参加させる考えはまだありません。

SELECT roles.id, permissions.id FROM roles INNER JOIN permissions; 
+0

こんにちはfellowmateを、@ 1000111の答えは正常に動作する必要があります。 'roles_permissions_dt'テーブルの行を表示できますか? – KaeL

+0

サンプルのソースデータと期待される出力を教えてください。 –

答えて

1

これを試してみてください。また、あなたは以下のようなWHERE句を使用してデータをフィルタリングすることができ

SELECT 
* 
FROM roles_permissions_dt RP 
INNER JOIN roles R ON RP.role_id = R.id 
INNER JOIN permissions P ON RP.permission_id = P.id; 

SELECT 
* 
FROM roles_permissions_dt RP 
INNER JOIN roles R ON RP.role_id = R.id 
INNER JOIN permissions P ON RP.permission_id = P.id 
WHERE RP.role_id = ? AND RP.permission_id = ?; 
+0

私はあなたの2番目のオプションを試しました、そして、 'WHERE'句で値を渡しましたが、ジャンクションテーブルの値を表示しませんでした。 – Francisunoxx

+0

あなたのジャンクション・テーブルにはどのようなデータがありますか、レコードを取得するために正確なクエリ(条件付きのパラメータ値を含む)がありますか? – Rupal

+0

** SQL FIDDLE **のいくつかのサンプルデータを含むこれらの3つのテーブルの 'スキーマ'をよりよく共有します。 @フランシスノックス – 1000111

関連する問題