質問編集履歴

4

amaguri

amaguri score 217

2017/01/23 16:00  投稿

postgresql 暗号化されたカラムをjoinしたいができない
```
byte a型で暗号化された
card_noというカラムがあり
データとして
dataテーブル
カラム
card_no        rank  ymd
暗号化された1923  1    2017-01-23
暗号化された1923  5    216-03-01
```
というデータを
```
card_no    rank    ymd   flg                rank    ymd    flg
card_no    rank    ymd   flg rank    ymd    flg
1923     1     2017-01-23   0   5  2016-03-01 1
```
という風につくりたいのですがうまくいきません。
現在のCode
```
select
   pgp_sym_decrypt(t3.card_no,pass) as card_no
   t3.rank,
   t3.ymd,
   t6.rank,
   t6.rank
from
   (select
     t1.*
    from
     data t1 join
     (select
         pgp_sym_decrypt(card_no,pass) as b_card_no,
         max(ymd)
      from
         data
      where
         flg='0' group by 1
     )t2
     on pgp_sym_decrypt(t1.card_no,pass)=b_card_no
     and
     t1.ymd=t2.ymd and flg="0"
 )t3
left join
   (select
       t5.*
    from
       data t5 join
       (select
            pgp_sym_decrypt(card_no,pass) as c_card_no,
            min(ymd) ymd 
        from
           data
        where
           flg='1'
         and
           ymd>=2015_01_01
           group by 1
        )t4
        on pgp_sym_decrypt(t5.card_no,pass)=c_card_no
        and
        t5.ymd=t4.ymd and t5.flg='1'
   )t6
   on pgp_sym_decrypt(t3.card_no,pass)=pgp_sym_decrypt(t6.card_no,pass)
```
最後のonの部分がうまくいかずjoinできてない気がしますが、、、
何が原因でしょうか?
  • PostgreSQL

    1529 questions

    PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

3

amaguri

amaguri score 217

2017/01/23 16:00  投稿

postgresql 暗号化されたカラムをjoinしたいができない
```
byte a型で暗号化された
card_noというカラムがあり
データとして
dataテーブル
カラム
card_no        rank  ymd
暗号化された1923  1    2017-01-23
暗号化された1923  5    216-03-01
```
というデータを
```
card_no rank ymd   fjlg   rank ymd  flg
1923     1 2017-01-23 0 5  2016-03-01 1
card_no    rank    ymd   flg                rank    ymd    flg
1923     1     2017-01-23   0   5  2016-03-01 1
```
という風につくりたいのですがうまくいきません。
現在のCode
```
select
   pgp_sym_decrypt(t3.card_no,pass) as card_no
   t3.rank,
   t3.ymd,
   t6.rank,
   t6.rank
from
   (select
     t1.*
    from
     data t1 join
     (select
         pgp_sym_decrypt(card_no,pass) as b_card_no,
         max(ymd)
      from
         data
      where
         flg='0' group by 1
     )t2
     on pgp_sym_decrypt(t1.card_no,pass)=b_card_no
     and
     t1.ymd=t2.ymd and flg="0"
 )t3
left join
   (select
       t5.*
    from
       data t5 join
       (select
            pgp_sym_decrypt(card_no,pass) as c_card_no,
            min(ymd) ymd 
        from
           data
        where
           flg='1'
         and
           ymd>=2015_01_01
           group by 1
        )t4
        on pgp_sym_decrypt(t5.card_no,pass)=c_card_no
        and
        t5.ymd=t4.ymd and t5.flg='1'
   )t6
   on pgp_sym_decrypt(t3.card_no,pass)=pgp_sym_decrypt(t6.card_no,pass)
```
最後のonの部分がうまくいかずjoinできてない気がしますが、、、
何が原因でしょうか?
  • PostgreSQL

    1529 questions

    PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

2

amaguri

amaguri score 217

2017/01/23 15:59  投稿

postgresql 暗号化されたカラムをjoinしたいができない
```
byte a型で暗号化された
card_noというカラムがあり
データとして
dataテーブル
カラム
card_no        rank  ymd
暗号化された1923  1    2017-01-23
暗号化された1923  5    216-03-01
```
というデータを
```
card_no rank ymd   fjlg   rank ymd  flg
1923     1 2017-01-23 0 5  2016-03-01 1
```
という風につくりたいのですがうまくいきません。
現在のCode
```
select
   pgp_sym_decrypt(t3.card_no,pass) as card_no
   t3.rank,
   t3.ymd,
   t6.rank,
   t6.rank
from
   (select
     t1.*
    from
     data t1 join
     (select
         pgp_sym_decrypt(pcard_no,pass) as b_card_no,
         pgp_sym_decrypt(card_no,pass) as b_card_no,
         max(ymd)
      from
         data
      where
         flg='0' group by 1
     )t2
     on pgp_sym_decrypt(t1.card_no,pass)=b_card_no
     and
     t1.ymd=t2.ymd and flg="0"
 )t3
left join
   (select
       t5.*
    from
       data t5 join
       (select
            pgp_sym_decrypt(card_no,pass) as c_card_no,
            min(ymd) ymd 
        from
           data
        where
           flg='1'
         and
           ymd>=2015_01_01
           group by 1
        )t4
        on pgp_sym_decrypt(t5.card_no,pass)=c_card_no
        and
        t5.ymd=t4.ymd and t5.flg='1'
   )t6
   on pgp_sym_decrypt(t3.card_no,pass)=pgp_sym_decrypt(t6.card_no,pass)
```
最後のonの部分がうまくいかずjoinできてない気がしますが、、、
何が原因でしょうか?
  • PostgreSQL

    1529 questions

    PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

1

amaguri

amaguri score 217

2017/01/23 15:58  投稿

postgresql 暗号化されたカラムをjoinしたいができない
```
byte a型で暗号化された
card_noというカラムがあり
データとして
dataテーブル
カラム
card_no        rank  ymd
暗号化された1923  1    2017-01-23
暗号化された1923  5    216-03-01
```
というデータを
```
card_no rank ymd   fjlg   rank ymd  flg
1923     1 2017-01-23 0 5  2016-03-01 1
```
という風につくりたいのですがうまくいきません。
現在のCode
```  
select
   pgp_sym_decrypt(t3.card_no,pass) as card_no
   t3.rank,
   t3.ymd,
   t6.rank,
   t6.rank
from
   (select
     t1.*
    from
     data t1 join
     (select
         pgp_sym_decrypt(pcard_no,pass) as b_card_no,
         max(ymd)
      from
         data
      where
         flg='0' group by 1
     )t2
     on pgp_sym_decrypt(t1.card_no,pass)=b_card_no
     and
     t1.ymd=t2.ymd and flg="0"
 )t3
left join
   (select
       t5.*
    from
       data t5 join
       (select
            pgp_sym_decrypt(card_no,pass) as c_card_no,
            min(ymd) ymd 
        from
           data
        where
           flg='1'
         and
           ymd>=2015_01_01
           group by 1
        )t4
        on pgp_sym_decrypt(t5.card_no,pass)=c_card_no
        and
        t5.ymd=t4.ymd and t5.flg='1'
   )t6
   on pgp_sym_decrypt(t3.card_no,pass)=pgp_sym_decrypt(t6.card_no,pass)
```
最後のonの部分がうまくいかずjoinできてない気がしますが、、、
何が原因でしょうか?
  • PostgreSQL

    1529 questions

    PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る