ホームページ  >  に質問  >  本文

2 つの複雑な mysql select ステートメントを結合する正しい方法は何ですか?

テーブルから 2 つのリストを取り出すことができます。各コホートの各学生のすべての単位が表示されます。もう 1 つは、各単元のすべてのセクションが特定のグループの特定の生徒の課題として提出されたかどうかを示します。各コホートの各学生の各単元の各セクションの提出物 (または未提出物) を表示できるように、リストに参加したいと考えています。

リーリー

これにより、ユーザー ID とグループ ID を持つ組織のリストが抽出されます。

リーリー

課題に提出済みの部分よりも多くの部分がある場合、この操作は、キュー ID、ユーザー ID、および単位名を指定して、各キュー内の各生徒が完了する必要がある単位ごとに 1 行を返します。

リーリー

最初の select ステートメントの 3 つの列を接続情報として使用して、2 番目の select ステートメントを最初の select ステートメントの一部にする方法は?

最初のクエリのすべての結果に対して 2 番目のクエリを実行したいと考えています。上記のデータを使用して、ユーザー ID 21 を抽出したいと思います。これは、ユーザーが 2 部構成のユニットの一部のみを送信したためです。

リーリー

これは結合ですか?それともサブクエリ?

P粉600402085P粉600402085410日前480

全員に返信(1)返信します

  • P粉477369269

    P粉4773692692023-09-07 09:18:18

    (実際のところ、グループはさまざまな社会科学分野で受け入れられている用語だと私は信じています。)

    assignments テーブルに cohort_unitspart テーブルと一致する part 列がある場合、問題は「コード > テーブル」の方が簡単になります。それでは、サブクエリから始めて、その列を含むダミー テーブルを生成しましょう。

    リーリー

    assignment の代わりにこのサブクエリを使用します。これは少し面倒ですが、今後の作業が明確になります。

    次に、各ユニットの部品の数が必要になります。これは単純な集計です:

    リーリー

    一般的なテーブル式を使用して、以下に示すようにクエリを整理できます。

    リーリー

    これはフィドルです。 https://dbfiddle.uk/FvGkiAnl

    これを達成するためのトリックの 1 つは、個別に集計して部品数を取得することです。

    返事
    0
  • キャンセル返事