2016-08-01 28 views
1

私は2つのクエリを持っており、それらを1つのクエリに結合し、namestylesを区別したいと思います。基本的には、彼がschoolsに属しているteacherのスタイルと、schoolが属するorganizationstylesのスタイルを取得したいだけです。同じテーブルの2つのクエリを結合する方法

これまでの質問です。

スタイル表

enter image description here

クエリ1

SELECT * 
FROM styles s 
WHERE s.organization_id = (
    SELECT t.school_id 
    FROM teachers t 
    WHERE t.user_id = 4 
) 

結果2 enter image description here

クエリ2

SELECT * 
FROM styles s, teachers t 
WHERE t.school_id = s.school_id 
    AND t.user_id = 4 

結果2 enter image description here

+2

期待どおりの結果が得られましたか? – Blank

+0

user_idに基づくすべてのスタイルの結合結果。 –

+0

あなたが見たい: 教師+スタイル+学校? –

答えて

1

あなただけ欠けているが、適切なクエリと合流します。ユーザーが古い結合スタイルを使用しないでください。INNER JOIN

stylesテーブルにteachersテーブルを別の列で追加したことがわかりました。それを行うための一つの方法は、このような単純なUNION次のようになります。

SELECT * 
    FROM styles s 
     INNER JOIN teachers t 
       ON s.organization_id = t.school_id 
WHERE t.user_id = 4 
UNION 
SELECT * 
    FROM styles s 
     INNER JOIN teachers t 
       ON t.school_id = s.school_id 
WHERE t.user_id = 4 

**注:** select *使用にすべての名前付き列を使用しないでください。

関連する問題