- ベストアンサー
SQLの作り方
知り合いに資料作成を頼まれたのですが、 SQLの作り方に四苦八苦してます。 SELECT 学生名簿. 名前,経済学史得点+経済総論得点 FROM 学生名簿.成績一覧 WHERE 学生名簿.学生証番号=成績一覧 学生証番号 AND 科目 LIKE‘経済’ つまり、このSQLが示すものは、 「学生名簿」と「成績一覧」の2つの表から 「名前」と「経済学史得点」と「経済総論得点」を抜粋し、 更に「学生名簿」から学生証番号の有無の確認 「経済OO」で始まる科目の履修が分かる(?) ↑ここが一番自信ないです… と言うこと何でしょうか。。確認なのですが、 小さな事からアドバイス、ご指摘、ご指導を宜しく お願い致します。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
>更に「学生名簿」から学生証番号の有無の確認 WHERE句で「学生名簿」と「成績一覧」を結び付けています。 >AND 科目 LIKE‘経済’ >「経済OO」で始まる科目の履修が分かる(?) 科目が「経済」と一致するデータを抜粋します。 「経済○○」を探す場合は、%ワイルドカードを使って AND 科目 LIKE '経済%' となります。
その他の回答 (2)
- karasu111
- ベストアンサー率20% (7/34)
>>WHERE句で「学生名簿」と「成績一覧」を結び付けています。 >と言うのは結びつけているとは学生証番号の事ですか? 2つの表を結合しているので、結合する条件が必要になります。 その条件がWHERE句で 「学生名簿」と「成績一覧」の両方に存在する「学生証番号」の等しい行を対応させるようにしています。
- stiffels
- ベストアンサー率34% (25/72)
成績一覧の科目が「経済○○」の人だけだすんですか? だったらこれでいいのかなー? SELECT A.名前, B.経済学史得点+B.経済総論得点, A.学生証番号, C.科目 FROM 学生名簿 A INNER JOIN 成績一覧 B ON (A.学生証番号=B.学生証番号) WHERE B.科目 LIKE‘経済%’ ORDER BY A.名前 ちょっと分からないのは、 成績一覧に 経済学史得点 経済総論得点 という固定科目のフィールドがあるのに 科目を絞り込んで抽出するという点。 どういうテーブル構成なのでしょう?
お礼
的確なSQLを有難うございます。 詳細は分からないのですが、知人から送られてきた SQLを解釈しようと思い、ご質問させて頂きました。 (知人もこのSQLの意味をあまり理解していない模様で) >WHERE 学生名簿.学生証番号=成績一覧 学生証番号 ここの条件の部分で一番頭を抱えています。 学生証番号と言うのは、ここで言うと名簿に該当する 生徒の学生証番号が有無を見る為なのですかね? 重ね重ねすみません・・・
お礼
ワイルドカードを忘れていました。すいません。。 >WHERE句で「学生名簿」と「成績一覧」を結び付けています。 と言うのは結びつけているとは学生証番号の事ですか? 度々すみません。