直接SQLの話というわけではなく、データベースの考え方に関する相談です。
私は複数のテーブルのデータの繋がりを理解して使用通りのSQLを組んだりすることが大変苦手です。
複数結合の中に自己結合なども加わってくる複雑なものなど本当にデータ構造の理解や整理が出来ず、業務で1時間未満で済むようなことを半日以上考えこんでしまい、仕事としては致命的な状態です。
このような、データの構造理解力を付けるにはどうしたらいいでしょうか。
何か、アドバイスや訓練方法、参考になる書籍、サイト等ございましたら教えていただきたいと思い質問投稿致しました。
宜しくお願い致します。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答5件
0
お使いのDBがなにかわかりませんが、ビジュアルなクエリビルダをとにかく動かしてみて、どういうクエリを書けばどういうデータが出てくるのかのいわゆる「できるパターン」を地道に増やしていく
またビジュアルなクエリビルダによっては、書いたSQLからビジュアルなクエリが生成できるものがあるので、それが使えれば理解しやすいかと
ボキャブラリーが増えると未知のものでも、なんとなく「あれ」と「これ」を組み合わせたらできそうだ的なものが増えてくるように思いますがいかがでしょう?
投稿2016/06/07 17:19
総合スコア3939
0
ベストアンサー
プロジェクトによってER図のつながり方とかが変わってくるとは思うのですが、
だいたいは
・主にデータを取ってくるメインのテーブルがある
・それに付随した情報を一緒にとってこようとした場合に、各テーブルとメインのテーブルのカラムの関連性を考える
だと思うので、まずはメインのテーブルを決めてそのテーブルの取得条件を考えてみてSQLを作ってみて、
後から結合するテーブルと条件を増やしていくのがいいと思います。
DBによっては関数もいろいろ用意されているので、どんなのがあるのかを調べられるサイトを見つけておくのもいいと思います。
ちっちゃいことの積み重ねで、どんどん色々なSQLが書けるようになってくると思いますよ^^
テーブルがないとかデータを触れない場合などでも、オンラインでSQLを試せるサイトもあるので、
利用してみるのもd('-'*)
⇒SQL Fiddle
<追記:2016/06/15>
ER図はEntity Relationship Diagram:ERD を日本語略語表記してるのかな。
各テーブルやデータの関係や構成を記載したものです。
だいたいこんな感じ → webに転がってたER図サンプル
大きいプロジェクトだと こんな感じ にもなります。
SQL書くときは必ずER図を使ってますよ。
どこのテーブルの項目を取ってきたほうがいいかなど、考えをまとめやすいです。
投稿2016/06/08 01:58
編集2016/06/15 00:32総合スコア1844
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
苦手意識が先行してなおさら苦手になっているのかもね。
複雑なものを一気に解決しようとしても難しいので、
まずは簡単なパターンから考えてみてはどうでしょうか。
A B C D と結合する場合は、まずA Bだけ考えて、
その結果に順次 C D と追加していく感じ?
たぶん慣れれば時間かけずにできるようなると思いますよ。:-)
投稿2016/06/07 23:48
総合スコア7458
0
参考になるかわかりませんが、
私の場合、複数のテーブルの関連性を考える際はまず、2つのテーブルを選択し
以下の3パターンを考えます。
1)親子関係か否か
2)無関係か
3)同じ親を持つ同レベルか
参考になれば幸いです。
私が複雑なデータベースを見たことが無いから
こんな考え方が通用するのかもしれませんが。
投稿2016/06/14 11:33
総合スコア10
0
DB定義書やER図を見て、どのテーブルがどのようにつながっているかを理解していくのが
よいかと思います。
そして自分が欲しいデータがどのテーブルから取得できるか、どのテーブルと結合するのか、
内部結合か外部結合か等を考えてSQLを書いてみて、意図したデータが取得できているか
確認する。
取得できていなければ、どのテーブルの結合までは正しくデータが取得できているか
1つずつテーブルを結合していけば、だんだん慣れてくると思います。
私自身「FetchXML」を使用したことがないので、アドバイスになっているかわかりませんが…。
投稿2016/06/08 00:08
総合スコア357
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/06/07 22:53
2016/06/08 01:32
2016/06/14 16:12