LoginSignup
1
0

More than 1 year has passed since last update.

OutSystemsでのSQLコンポーネントを使うときのコツ

Posted at

OutSystemsでのSQLコンポーネントを使うときのコツ

OutSystemsでのSQLコンポーネントで使用するSQL文の書き方で
テーブル名を { } で囲むというのが地味にめんどくさいので、もっと簡単にできないかと色々試してみた。

OutSystemsでのSQLコンポーネントで使用SQL文だと

Select * from Table1 Where Table.Flg=True Order by Table.ID

みたいに書くときに

テーブル名を { } で囲まないとならないというルールにより

Select * from {Table1} Where {Table1}.Flg=True Order by {Table1}.ID

こうやってテーブル名を {Table1} と書かないとならないので地味にめんどくさい。

これは、使用するテーブルが一個であれば、まだメンドクサイだけで済むんだけど
テーブルを複数使うとなるとクソメンドクサイに変わるのね。

Table1, Table2, Table3 を使う場合、こんなかんじ。

Select * from {Table1}
inner join {Table2} on {Table1}.ID = {Table2}.RefID
inner join {Table3} on {Table1}.ID = {Table3}.RefID
Where {Table1}.Flg=True
Order by {Table1}.ID, {Table2}.ID, {Table3}.ID

いちいち、テーブル名を { } で囲むのがねぇ…。

これを改善するにはテーブルの別名を付けることで解決する。

Select * from
{Table1} t1
inner join {Table2} t2 on t1.ID = t2.RefID
inner join {Table3} t3 on t1.ID = t3.RefID
Where t1.Flg=True
Order by t1.ID, t2.ID, t3.ID

Table1 を t1 という別名に、 Table2 を t2、 Table3 を t3 と名前をつけることで
その後のテーブルの参照がすべて別名で指定できるのが良い。

そのためOutSystemsでのSQLコンポーネントで使用するSQL文が格段に書きやすくなる。
テーブル名に { } を付けるっていう縛りが最初に別名を付けるだけで済む。

短縮型の別名だとわかりにくいというのであれば
こんな風にしてみるのもいいかもと思う。

Select * from {Table1} _Table1
inner join {Table2} _Table2 on _Table1.ID = _Table2.RefID
inner join {Table3} _Table3 on _Table1.ID = _Table3.RefID
Where _Table1.Flg=True
Order by _Table1.ID, _Table2.ID, _Table3.ID

これも、ちょっと面倒か…
普通に短縮形の別名を付けるほうが楽かもな…と思う。

1
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
1
0