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

2 つのテーブルの SQL 複数条件が間違ったデータを返す

次のスキーマを持つ 2 つの MySql テーブルがあります

リーリー

ここで、学生が学期中のロール番号 RNO を持つように、すべての (RNO, year, Sem) トリプルを見つける必要があります。 年度ごとに定義されているように、Sem は少なくとも 3 つ以上の異なるコースを受講/登録しており、それぞれが異なる学部によって提供されています。

私のコードは次のとおりです

リーリー

(Row_Number を使用して、列の 1 つに Distinct キーワードを適用しました) ただし、学生が 2 つの異なる学期で 3 つ以上のコースに登録しており、出力が 2 行ではなく 1 行である場合、このコードは失敗します。これが起こる理由とその修正方法

これはサンプル データとスキーマの SQL コードです

リーリー

ここに DB Fiddle へのリンクがあります。

P粉180844619P粉180844619236日前360

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

  • P粉937769356

    P粉9377693562024-02-26 10:50:57

    如果我没猜错の话

    登録.RNO、登録.年、登録.Semを選択します
    登録から
    course.CNO=Register.CNO の内部結合コース
    RNO、年、Semごとにグループ化
    COUNT(distinct course.CNO)>=3 かつ COUNT(distinct course.DeptId) >=3 である;

    返事
    0
  • キャンセル返事