- - PR -
JET で FULL OUTER JOIN を実現
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2007-06-11 00:02
SQLの書き方について教えていただきたいことがあります。
稚拙な内容かもしれませんがご教授いただけますよう お願いいたします。 先日、同一の構造を持つテーブル2つのとあるcolumnについて、 データ格納状態の比較を行うように言われました。 具体的には、 Table1.[0001] Table2.[0001] ------------------------------------ a a a a b c d d について、 0001 件数 0002 件数 ---------------------------- a 2 a 2 b 1 b 0 c 0 c 1 d 1 d 1 と出力したいのです。 このために FULL OUTER JOIN という外部結合を使おうと 思ったのですが、Accessでは使用できない様子…。 また、left Join などでは、上記のCのrowが表示されずに 困っています。 以下、left joinで書いてみたクエリです。 select y.*,b.* from ( select x.[0001] as out, count(*) as cnt from Table1 as x group by x.[0001] ) as y left join ( select a.[0002] as out2, count(*) as cnt2 from Table2 as a group by a.[0002] ) as b on y.out = b.out2 どなたか有効な方法を知っている方いましたら 教えていただけると幸いです。 よろしくお願いいたします。 | ||||
|
投稿日時: 2007-06-11 01:20
#微妙に会議室違いかもしれません。
完全外部結合はAccessでは使えないみたいですね。 Table2にあってTable1にないものが出てこないから困るってことですよね。 どちらかにあるものの一覧をselectするクエリ(unionとdistinct使うのかなあ)を作ってそれを一番左に置く、 Table1とTable2はそれに対してleft joinしていけばいいんじゃないでしょうか。 | ||||
|
投稿日時: 2007-06-11 01:37
べるさん
ご教授ありがとうございます。 なるほど、そういう手段がありますね。 さっそく試行してみようと思います。 >#微妙に会議室違いかもしれません。 確かにそうでした(汗 ご指摘 + 場違いにも関わらずご回答いただけましたこと、 ありがとうございました! | ||||
|
投稿日時: 2007-06-11 10:36
私が.NETの方だと勘違いしてました |
1