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