1体N LEFT JOIN
売上ヘッダと売上明細 1対Nですが、
取りだされるデータは、売上明細の全ての行が取りだされるのですね。
知りませんでした。
SELECT HEAD.* , MEI.*
FROM 売上ヘッダ HEAD
LEFT JOIN 売上明細 MEI
1対Nの時は以下のように
SELECT FROM に N明細データを指定して、JOINに ヘッダ等を指定していました。
SELECT HEAD.* , MEI.*
FROM 売上明細 MEI
LEFT JOIN 売上ヘッダ HEAD
SQL文 大変重宝しておりますが、まだまだです。
-
ISHIJIMAさん レスありがとうございます。
そうですよね。そこは私も理解しております。
売上伝票に、得意先マスタや担当者マスタをJOINする分は
(不整合はまずあり得ませんが)LEFT JOINしております。
RIGHT JOINもあまり使いません。
INNER JOINもあまり使いませんが、本社にも営業所にもあるとか
1Fにも2Fにもあるとか、受注にも売上にもあるとかそんな場合にも重宝しそうですね。
色々と書き込んで皆さんご迷惑かもしれませんがお許しください。 -
nkmtさん こんにちは。
投稿いろいろと勉強になっております。ありがとうございます。
INNER JOINはたくさん使っていますよ。レコードメインが絞れます。
LEFT OUTER JOIN も使用します。リンク照会と同じで、レコードが無い場合はNULL表示になります。
別件ですが、UNIONも使えます。
確定したデータを別のテーブルに格納しており、現在使用している流動的なデータと確定データを同時に使用したい時ですね。
あとは副問い合わせとか…
MAGICで記述することをSQL文にすることで、処理がかなり高速になります。ビュー再表示のカーソルは手動ですけど。
-
sudoさん どうもありがとうございます。
UNIONは実験程度でしか使った事がないので、その使い方はいいなと思いました。
自分に照らし合わせると、既存学生データと卒業生データとテーブルが分かれているような分をUNIONでくっつけるといった使い方を思い浮かべました。
1番最初私がSQLをMagicで使おうと思ったのが10万件の商品マスタと商品売上集計済データとの組合せで在庫一覧を印刷する処理が普通の作りで遅すぎた時でした。
10万件分、その商品の集計済データの当月以前のレコードを降順の照会リンクで取得するのは無理がありました。
サインインしてコメントを残してください。
コメント
3件のコメント