タグ

関連タグで絞り込む (1)

タグの絞り込みを解除

sqlと考え方に関するatm_09_tdのブックマーク (3)

  • SQL的(集合的)考え方と、ループ(手続き型)の考え方3 - SQLer 生島勘富 のブログ

    問題を少し変更 問題)部品在庫から、作成可能な製品の情報をとる。 ※来はマスタテーブルと組み合わすべきですが、ツールの関係上2テーブルしか同時に表示出来ないので名称で結合する形になります。 SQLで考えるなら という風に考えます。 言い換える 『在庫数が必要量を満みたす製品のみ』 → 『在庫数が必要量を満たさないレコードがある製品を削る』 『満たさない』= NOT EXISTS(あるいは、NOT IN) 答えは SELECT * -- 当は必要なもののみ FROM 部品表 AS bh INNER JOIN 在庫 AS zk ON bh.材料名 = zk.材料名 WHERE NOT EXISTS (SELECT * FROM 部品表 AS bh_s INNER JOIN 在庫 AS zk_s ON bh_s.材料名 = zk_s.材料名 WHERE bh_s.製品名 = bh.製品名 -

    SQL的(集合的)考え方と、ループ(手続き型)の考え方3 - SQLer 生島勘富 のブログ
  • SQL的(集合的)考え方と、ループ(手続き型)の考え方2 - SQLer 生島勘富 のブログ

    もう一度問題 問題)部品在庫から、作成可能な製品名をとる。 ※来はマスタテーブルと組み合わすべきですが、ツールの関係上2テーブルしか同時に表示出来ないので名称で結合する形になります。 SQLで考えるなら 答えは SELECT 製品名 FROM 部品表 INNER JOIN 在庫 ON 部品表.材料名 = 在庫.材料名 GROUP BY 製品名 HAVING MIN(在庫.数量 - 部品表.必要量) >= 0; 三枚の図になっていますが、考え方さえ理解していれば数十秒で答えまでたどり着けます。パターン認識じゃないので忘れてもどってことはないのです。 考え方としてはこんな感じになります。 必要なテーブルを引っ付け、ゴールを目指して削り出して行けば良い。 プラモデルと、彫刻の違いです。 言い換えは、他の言語より重要? プログラムも翻訳と同じですから、言い換えは必要です。 上の図の「SQL的思考

    SQL的(集合的)考え方と、ループ(手続き型)の考え方2 - SQLer 生島勘富 のブログ
  • SQL的(集合的)考え方と、ループ(手続き型)の考え方1 - SQLer 生島勘富 のブログ

    前回、勉強会に参加したときに感じたことの続き。 みんなはどう考えているか? この問題は正答率が低かった。答えを見たら「あぁ〜」ってなるレベルですが、なかなか、出てこないようです。 問題)部品在庫から、作成可能な製品名をとる。 ※来はマスタテーブルと組み合わすべきですが、ツールの関係上2テーブルしか同時に表示出来ないので名称で結合する形になります。 逆に、私には、なぜ、正答率が低いのか分からずに悩んでいました。そこに、SQLが流行らない理由があるんだろうけれど、私には分からないのです。私はタイピングが滅茶苦茶遅いので時間は掛かるのですが、頭の中では答えは何十秒かで出ています。 皆さんが難しいと感じるものを、私が数十秒で答えまでたどり着くのは経験の差じゃない。単純に考え方の違いと分かっているのですが、それをどう表現したら良いのか……、何年も考えているのですが、なにぶん、皆さんの考えていること

    SQL的(集合的)考え方と、ループ(手続き型)の考え方1 - SQLer 生島勘富 のブログ
  • 1