LoginSignup
0
0

More than 1 year has passed since last update.

【データモデル】テーブルJOINを定義してみる

Posted at

Sharperlightは、基のデータベースではなく、Sharperlightのデータモデル層にクエリに必要なJOINを作成することができます。
:bulb: 基のデータベースには一切変更の必要はありません。

このような例があるとします。Sales(売上)テーブルには、製品IDが存在するがProducts(製品)テーブルへのJOINが存在しないため、製品の詳細が取得できません。
2022-03-02 Figure 01.png
そこで、このSharperlightの製品"Qiita Demo Product" のデータモデルを更新し、Sales(売上)テーブルにProducts(製品)テーブルへのJOINを追加してみます。
Sharperlightアプリケーションメニューから”スタジオ”を選択します。
2022-03-02 Figure 02.png
スタジオが起動したら、"Qiita Demo Product"データモデルのファイルを選択します。
2022-03-02 Figure 03.png
次にTablesタブ、Salesテーブルの選択、 Salesテーブルをダブルクリックでその詳細を中央の枠に表示します。
2022-03-02 Figure 04.png
[製品Id]フィールドを選択し、右クリックメニューを表示します。そして"New Join"を選択します。
2022-03-02 Figure 05.png
JOIN先のテーブルを選択します。ここではProducts(製品)テーブルですね。
2022-03-02 Figure 06.png
Sales(売上)テーブルへのJOINを定義するダイアログが表示されます。上部左側がSales(売上)テーブル、つまり接続元、上部右側がProducts(製品)テーブル、接続先です。
JOINを作成する対象フィールドをそれぞれのテーブルから選択します(1)と(2)。
LEFT OUTER JOINが生成されるので、Add(追加)ボタンで決定します。
JOIN句を確認したらOKボタンを押して完了します。
2022-03-02 Figure 07.png
Sales(売上)テーブルにProducts(製品)テーブルへのJOINが作成されました。
2022-03-02 Figure 08.png
データモデルを保存します。
2022-03-02 Figure 09.png
Sharperlightアプリケーションメニューからクエリビルダを再起動します。既にクエリビルダが起動している場合は一度閉じてから再起動します。そうすることでデータモデルへの変更が有効になります。
Sharperlightの製品には"Qiita Demo Product"、テーブルはSales(売上)を選択します。”選択”階層表示領域には、フィールドと共に先ほど追加したProducts(製品)テーブルへのJOINが表示されます。
2022-03-02 Figure 10.png
早速、製品コードや製品名をクエリで出力してみましょう。
2022-03-02 Figure 11.png
プレビューにより、クエリ結果をこのように拝見できます。製品コードと製品名が表示されました。
2022-03-02 Figure 12.png
:postbox:お問い合わせ

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0