[MUSASHI-users 436] Re: データの結合方法

Back to archive index

Yukinobu Hamuro hamur****@adm*****
2004年 12月 13日 (月) 20:55:22 JST


海老澤 様、羽室です。

>羽室様 ご返答ありがとうございます。Libxml2のインストールは依存関係が
>複雑なために現在は1.0.3を利用させていただきます。立て続けで恐縮ですが
>データの結合方法で質問があります。
私の経験で言いますと、
libxml2-2.6.x.i386.rpm
libxml2-devel-2.6.x.i386.rpm
libxml2-python-2.6.x.i386.rpm
といった三つを用意して以下のようにすれば簡単にUPDATEできると思いますが。
rpm -U libxml2-2.6.x.i386.rpm libxml2-devel ...

joinについてですが、

join1.xml(参照ファイル)
ID  SI2
aaa 5951
ccc 9585

join2.xml(入力ファイル)
ID  SI1
aaa 4100
bbb 1254
としますと、

xtjoin -k ID -m join1.xml -f SI2 -nN -i join2.xml
にて可能で、結果は、
ID  SI1  SI2
aaa 4100 5951
bbb 1254 *
ccc * 9585
となります。
(もちろん"xtnulto -f SI1,SI2 -v 0"にてNULLを0に変換する必要があります)

-nNがポイントです。

以下、-n,-Nに関する説明です。
「あるキーの値」について入力ファイルと参照ファイルの関係について次の3つのパターンが考えられます。
      入力ファイル 参照ファイル
パターン1 あり     あり
パターン2 あり     なし
パターン3 なし     あり

何も指定しない:パターン1のみ出力(キーがマッチした項目のみ結合)
-nだけ指定:パターン1、パターン2を出力(ただしパターン2の参照ファイルの結合項目はNULL値となる)
-Nだけ指定:パターン1、パターン3を出力(ただしパターン3の入力ファイルのキー項目以外の項目はNULL値となる)
-nN 両指定:パターン1,2,3を出力。

>と結合したいのですが、xtjoinやxtnjoinを利用すると
> 41005951
> 12540
> 09585
とありますが、xtjoinやxtnjoinにてデリミター(空白文字)が出力されないということでしょうか?



>単純に
>--
> aaa 4100
> bbb 1254
>--
> aaa 5951
> ccc 9585
>---
>という2つのレコード(1列目が「ID」2列目が「SI」か「SI2」)を
>--
> aaa 4100 5951
> bbb 1254 0
> ccc 0 9585
>--
>と結合したいのですが、xtjoinやxtnjoinを利用すると
> 41005951
> 12540
> 09585
>となってしまいます。これを解決する方法はあるのでしょうか?
>
>xtjoin -k ID -K ID -m join1.xml -f SI2 -i join2.xml
>xtnjoin -k ID -K ID -m join1.xml -f SI2 -i join2.xml
>
>
>以上、よろしくご教示願います。
>
>
>_______________________________________________
>MUSASHI-users mailing list
>MUSAS****@lists*****
>http://lists.sourceforge.jp/mailman/listinfo/musashi-users
>

----
Yukinobu Hamuro  hamur****@adm*****



MUSASHI-users メーリングリストの案内
Back to archive index