MySQL関連テーブルの複数の行に一致する行を選択します

The4thIceman

次の表ははるかに大きいですが、質問を簡単にするためにサイズが小さくなっています

表1-exercise_rolladex

Exercise_ID | Exercise_Name
---------------------------
1            Pushups
2            Turkish Get Ups
3            Squats
4            Ice Skater

表2-exercise_planes

Exercise_Plane_ID | Exercise_Plane
----------------------------------
1                  Sagittal
2                  Frontal
3                  Transverse

表3-exercise_has_planes

Exercise_ID | Exercise_Plane_ID
-------------------------------
1             1
2             1
2             2
2             3
3             1
4             2
4             3

私の質問は次のとおりです。Exercise_Plane_ID= 1およびExercise_Plane_ID = 2を持つ各演習のExercise_IDを見つけることができるクエリを構成するにはどうすればよいですか。言い換えれば、矢状面と前頭面の両方の運動面を持つエクササイズを見つけます。

正しいクエリ

   SELECT e.Exercise_Name, p.Exercise_Plane 
   FROM exercise_rolladex e
   INNER JOIN exercise_has_planes h ON h.Exercise_ID=e.Exercise_ID
   INNER JOIN exercise_planes p ON p.Exercise_Plane_ID=h.Exercise_Plane_ID
   WHERE p.Exercise_Plane_ID IN(2,1)
   GROUP BY e.Exercise_ID
   HAVING COUNT(DISTINCT h.Exercise_Plane_ID ) >= 2

フォローアップの質問を更新する場合、除外を含めるにはどうすればよいですか?たとえば、plane_id 2と3の演習を見つけますが、plane_id 1の演習は除外します(正しい結果は「IceSkater」です)。

私は先に進んで、自分の質問に答えました。

   SELECT e.Exercise_Name, p.Exercise_Plane 
   FROM exercise_rolladex e
   INNER JOIN exercise_has_planes h ON h.Exercise_ID=e.Exercise_ID
   INNER JOIN exercise_planes p ON p.Exercise_Plane_ID=h.Exercise_Plane_ID
   WHERE p.Exercise_Plane_ID IN(2,3)
       AND e.Exercise_ID NOT IN
       (SELECT Exercise_ID FROM exercise_has_planes WHERE Exercise_Plane_ID='1')
   GROUP BY e.Exercise_ID
   HAVING COUNT(DISTINCT h.Exercise_Plane_ID ) >= 2

ブラウンストーン氏のおかげで、別の質問から答えました。1つの値に基づいてアイテムを除外するSQLクエリ

Mハリドジュナイド

あなたはこのようなことをすることができます、これはあなたの与えられた入力IDでプランIDをチェックし、カウントが複数を返す場合は各エクササイズグループのカウントを除外しますそれはエクササイズに飛行機があることを意味します運動中

SELECT e.Exercise_Name, 
p.Exercise_Plane 
FROM exercise_rolladex e
INNER JOIN exercise_has_planes h ON h.Exercise_ID=e.Exercise_ID
INNER JOIN exercise_planes p ON p.Exercise_Plane_ID=h.Exercise_Plane_ID
WHERE p.Exercise_Plane_ID IN(2,1)
GROUP BY e.Exercise_ID
HAVING COUNT(DISTINCT h.Exercise_Plane_ID ) >= 2

デモ

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

2つのテーブルと2つに関連する3番目のテーブルがある場合、テーブルBの行のリストに一致するが、別のリストには一致しないテーブルAの行のみを選択します。

分類Dev

SQL:別のテーブルの何かに一致するすべての行を選択します

分類Dev

リストに関連付けられたすべてのアイテムに一致する行のグループを選択します

分類Dev

mysql-テーブルに一致するものがある場合は、テーブルの最初の行を選択します

分類Dev

子テーブルの複数の行が一致する場合にのみ、親テーブルから行を選択する

分類Dev

mysqlの「複数行条件」に一致する行を選択する方法

分類Dev

ifステートメントを使用して複数の基準に一致し、テーブル内の選択した行を削除する方法

分類Dev

mysqlは、2つの項目が一致する複数のテーブルから選択します

分類Dev

テーブル内に一致する複合キーが3つ以上あるすべての行を選択します

分類Dev

関連するテーブルに複数の値がある場合に行を選択する方法

分類Dev

他のテーブルに一致する値がない行でMySQL選択を最適化する方法

分類Dev

MYSQL:複数の値が1つの列に少なくとも2回一致するテーブルからIDを選択します

分類Dev

PHP MySQLは、一致するすべての行を選択し、別のテーブル行をエコーします

分類Dev

同じテーブル内の別の値と一致する行から値を選択します

分類Dev

テーブルから行を選択し、相互に関連する複数の列を使用して順序付けします

分類Dev

Linqは複数の結合から選択し、テーブルが一致を返さない場合でもすべての行を返します

分類Dev

Apache DerbySQL-2つのテーブル間の関連する行の数を選択します

分類Dev

mysqlテーブルの複数の行を単一の行として選択する方法

分類Dev

条件に一致する行と一致する行に関連する行を選択するためのMySQLクエリ

分類Dev

パンダの複数の列の値に一致する行を選択します

分類Dev

単一のテーブルに関連して複数の多対多を選択する方法

分類Dev

MySqlで1対多の関係の右側に一致する行を選択します

分類Dev

隣接するテーブルに他の複数の行がある行を選択します

分類Dev

PostgreSQLは、日付がテーブル内の特定の週数と一致する行のみを選択します

分類Dev

MYSQL:組み合わせに一致するテーブルからすべての行を選択し、その逆

分類Dev

列の合計に一致する2つのデータテーブルから行を効率的に選択します

分類Dev

別のテーブルの2つの列に一致するMySQLの行を削除します

分類Dev

KDBの2つの異なるテーブルから部分的に一致する行を選択しますか?

分類Dev

2つ以上の関連テーブルに一致するレコードの選択

Related 関連記事

  1. 1

    2つのテーブルと2つに関連する3番目のテーブルがある場合、テーブルBの行のリストに一致するが、別のリストには一致しないテーブルAの行のみを選択します。

  2. 2

    SQL:別のテーブルの何かに一致するすべての行を選択します

  3. 3

    リストに関連付けられたすべてのアイテムに一致する行のグループを選択します

  4. 4

    mysql-テーブルに一致するものがある場合は、テーブルの最初の行を選択します

  5. 5

    子テーブルの複数の行が一致する場合にのみ、親テーブルから行を選択する

  6. 6

    mysqlの「複数行条件」に一致する行を選択する方法

  7. 7

    ifステートメントを使用して複数の基準に一致し、テーブル内の選択した行を削除する方法

  8. 8

    mysqlは、2つの項目が一致する複数のテーブルから選択します

  9. 9

    テーブル内に一致する複合キーが3つ以上あるすべての行を選択します

  10. 10

    関連するテーブルに複数の値がある場合に行を選択する方法

  11. 11

    他のテーブルに一致する値がない行でMySQL選択を最適化する方法

  12. 12

    MYSQL:複数の値が1つの列に少なくとも2回一致するテーブルからIDを選択します

  13. 13

    PHP MySQLは、一致するすべての行を選択し、別のテーブル行をエコーします

  14. 14

    同じテーブル内の別の値と一致する行から値を選択します

  15. 15

    テーブルから行を選択し、相互に関連する複数の列を使用して順序付けします

  16. 16

    Linqは複数の結合から選択し、テーブルが一致を返さない場合でもすべての行を返します

  17. 17

    Apache DerbySQL-2つのテーブル間の関連する行の数を選択します

  18. 18

    mysqlテーブルの複数の行を単一の行として選択する方法

  19. 19

    条件に一致する行と一致する行に関連する行を選択するためのMySQLクエリ

  20. 20

    パンダの複数の列の値に一致する行を選択します

  21. 21

    単一のテーブルに関連して複数の多対多を選択する方法

  22. 22

    MySqlで1対多の関係の右側に一致する行を選択します

  23. 23

    隣接するテーブルに他の複数の行がある行を選択します

  24. 24

    PostgreSQLは、日付がテーブル内の特定の週数と一致する行のみを選択します

  25. 25

    MYSQL:組み合わせに一致するテーブルからすべての行を選択し、その逆

  26. 26

    列の合計に一致する2つのデータテーブルから行を効率的に選択します

  27. 27

    別のテーブルの2つの列に一致するMySQLの行を削除します

  28. 28

    KDBの2つの異なるテーブルから部分的に一致する行を選択しますか?

  29. 29

    2つ以上の関連テーブルに一致するレコードの選択

ホットタグ

アーカイブ