2016-10-01 14 views
0

ジョインを使用して2つのテーブルからデータをフェッチしようとしています。しかし、私はそれを行う方法を知らない。私はジョインについて読んだことがありますが、私が新しくなってからは意味がありませんでした。MySQLが結合します。 2列の2つの条件に一致する

私は2つのテーブルを持っています。 遊び場で

Playgrounds   Inspection 

    id u_id   id playground_id 
    1 2    1  1 
    2 2    2  2  

テーブルidは、遊び場のIDであり、ユニークであり、u_idは遊び場のユーザです。

検査でテーブルidは一意であり、playground_id遊び場テーブルのidから外部キーとして使用されます。

私の問題は、私はそれは遊び場テーブルからIDを選択する必要があり遊び場テーブル内のクエリにidu_idに合格しなければならないということです。その後、そのIDに基づいて検査テーブルからすべてのものを選択する必要があります。

私は正しく説明しました。

ご迷惑をおかけして申し訳ありません。事前

+0

これまでに行ったことを示すことはできますか? –

+0

'playground_id'に参加しましょう – Zeeshan

答えて

1

JOIN操作で

おかげで、INNER JOINLEFT JOIN、またはRIGHT JOINかどうか、この全体的な構文を持っています。

table_expression JOIN table_expression ON boolean_expression 

ブール式が真である場合、JOIN結果に単一の行に二つのテーブルの一致する行を連結。あなたのケースでは

は、あなたがInspectionから行を知ってどのようにそれがPlaygroundsの行に関係だからON句のブール式が

Playgrounds.id = Inspection.playground_id 

を言いたいです。したがって、

SELECT Inspection.id AS Inspection_ID, 
     Playgrounds.id AS Playground_ID, 
     Playgrounds.u_id AS User_ID 
    FROM Playgrounds 
    JOIN Inspection ON Playgrounds.id = Inspection.playground_id 
    WHERE Playgrounds.u_id = something 
    AND Playgrounds.id = something_else 

のようなステートメントを参照してください。 SELECTは、ON句で選択した条件で既存の2つのテーブルの行をジョインすることによって、結果セットと呼ばれることもある新しいテーブルを作成します。

ON句に任意の値を入力できます。 (あなたがInspectionテーブルでscope列を持っていた場合)あなたは、たとえば

Playgrounds.id = Inspection.playground_id OR Inspection.id < 20 

または

Playgrounds.id = Inspection.playground_id OR Inspection.scope = 'citywide' 

を置くことができます。

ただし、基本的な操作であるJOINの操作をマスターするまでは行ってはいけません。

関連する問題