sql >> データベース >  >> RDS >> Mysql

SQLJOIN多対多

    この小さなトリックで可能です(多対多のテーブルでOUTER JOIN、GroupIDは3(ドラマの場合)でなければならないという制約があります

    http://sqlfiddle.com/#!9/01cf3/1

    SELECT elements.ID, elements.Element, groups.Genre
      FROM elements
    LEFT OUTER JOIN group_elements
      ON elements.ID = group_elements.ElementID
     AND group_elements.GroupID = 3
    LEFT OUTER JOIN groups
      ON group_elements.GroupID = groups.ID
    

    LEFT OUTER JOIN 意味:前のテーブル(LEFT OUTER JOINの左側にあるテーブル)からすべての行を取得します 、必要に応じて)、次の表にそれらに対応する行がない場合でも。条件ON elements.ID = group_elements.ElementID AND group_elements.GroupID = 3 ElementIDに一致するものが見つかった場合、それもドラマである必要があると言います(GroupID =3)。次に、groupsテーブルで別のLEFT OUTER JOINを実行します。これにより、Genre列を表示できます。要素がドラマでない場合は、NULLを表示できます。




    1. パラメータの配列を受け入れるOracleでストアドプロシージャを作成する方法

    2. mySQL ::別のテーブルのデータをテーブルに挿入しますか?

    3. com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException:mysql内

    4. MySQL高可用性フレームワークの説明–パートII:準同期レプリケーション