お力貸してください。
[Table111]
データA データB データC Name111
Null 1 5 あああ
2 Null 6 いいい
3 4 7 ううう
[Table222]
データA データB データC Name222
Null 1 5 AAA
2 Null 6 BBB
3 4 7 CCC
Table111とtable222をデータAとデータBとデーターCの3つで結合して
新しいテーブルをつくりたいです。
[TableC]
データA データB データC Name111 Nam222
Null 1 5 あああ AAA
2 Null 6 いいい BBB
3 4 7 ううう CCC
Nullもデーターとして認識させたいのですが、うまくいきません。
できれば、新しくテーブルを作ったりしたくないです。
お知恵をかしてください。よろしくおねがいします。
No.4ベストアンサー
- 回答日時:
#1です。
>X・Yというのは?
Table111 AS X
Table222 AS Y
Table111 に別名 X と付けています。
同様に Table222 に Y という別名をつけてます。
別名を使わなかった場合は下のようになります。
SELECT Table111.データA, Table111.データB, Table111.データC, Table111.Name111, Table222.Name222 INTO TableC
FROM Table111 INNER JOIN Table222 ON
("" & Table111.データA = "" & Table222.データA) AND
("" & Table111.データB = "" & Table222.データB) AND
("" & Table111.データC = "" & Table222.データC);
別名を使ったほうが短く記述できます。
別名を使うメリットは記述するのが少し楽になる程度ですので、使わなくても大丈夫です。
venzoさん、ご回答ありがとうございます。
先ほど、実データで#1の方法を実行してみました。
X・Yの意味を理解していなかったので、テーブルの別名はつけずに記述したのですが、希望通りできました!!!
『""』 をつけるのは目からウロコでした!
(もともと、実データーもテキスト型だったので・・・)
本当にありがとうございます。!
No.3
- 回答日時:
サンプルでは
データA,データB,データCの複数フィールドで主キー(一意な値を持つ)事が
可能のようですが、この後もレコードを追加してゆくと
いつかは地雷を踏みそうです
(連結3フィールドで重複するレコードが出来てしまう)
なので、テーブル設計に立ち返った方が良いように思えます。
「急がば回れ」です。
この回答への補足
ご回答ありがとうございます。
ACCESSを使用してますが、別のアプリケーション(テーブル構造自体違うもの)からインポートしているため、テーブルの構造を変更ですることができないんです・・・。
また、お力を貸していただければ・・・と思います。
No.2
- 回答日時:
原則、どのRDBでもNULLは結合キーにはならないはずです。
よって単純には無理なので何らかの前処理をしないとだめです。
今考え付くのは、
1)仮想表(oracleでいえばview)を作成する(nullの場合にダミー値をセットするもの)。そしてその仮想表同士で結合する
2)結合するキーとなる項目にnullではなく0或いはダミー値に更新する。
でしょうか。
普通に考えれば結合するキーである以上nullがセットされる自体を避けるべきですし、パフォーマンス上も問題あります。
よって上策は2)、下策は1)となります。
ただどうしてもできないのであれば1)の方法をとるしかないでしょう。
この回答への補足
ご回答ありがとうございます。
Accessを仕様しているのですが、Replace関数等を使って、Nullを、0か1に変換させようと思ったのですが、(SQL文で一発で実行させたい)うまくいかきません。
まだまだ、初心者で勉強中なのですが・・・。
『結合するキーである以上nullがセットされる自体を避けるべき』
その通りなのですが、データーの構造上、どうしても避けられないんです。
また、お力を貸していただければ・・・と思います。
No.1
- 回答日時:
Access2000で確認しました。
SELECT X.データA, X.データB, X.データC, X.Name111, Y.Name222 INTO TableC
FROM Table111 AS X INNER JOIN Table222 AS Y ON
("" & X.データA = "" & Y.データA) AND
("" & X.データB = "" & Y.データB) AND
("" & X.データC = "" & Y.データC);
このクエリでTableCに3レコード追加できます。
ポイントは "" & X.データA とすることで強制的に文字列として比較しています。
データがNullの場合 "" & X.データA は ""(ヌル文字)となります。
"" & X.データA の代わりに Nz(X.データA,"") でも同様の結果になります。
Access以外のデータベースで使えるかどうかは分りませんが、同様の手段で出来るかも。
ご回答ありがとうございます。
SELECT X.データA, X.データB, X.データC・・・・の
X・Yというのは?
すみません・・・
まだまだ、初心者で勉強中なんです・・・
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
準・究極の選択
「年収1000万円で一生カレーライス」か 「年収180万円で毎日何でも食べ放題」 あなたはどちらを選びますか?
-
フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
あなたが普段思っている「これまだ誰も言ってなかったけど共感されるだろうな」というあるあるを教えてください
-
映画のエンドロール観る派?観ない派?
映画が終わった後、すぐに席を立って帰る方もちらほら見かけます。皆さんはエンドロールの最後まで観ていきますか?
-
海外旅行から帰ってきたら、まず何を食べる?
帰国して1番食べたくなるもの、食べたくなるだろうなと思うもの、皆さんはありますか?
-
天使と悪魔選手権
悪魔がこんなささやきをしていたら、天使のあなたはなんと言って止めますか?
-
【ACCESS】リレーションを組んでいるフィールドがNullの場合
その他(プログラミング・Web制作)
-
NULLを含む文字列の結合で困っています。
Visual Basic(VBA)
-
アクセスで数値型のフィールドにNullをいれたい
その他(データベース)
-
-
4
2つのテーブルに共通するレコードを削除したい
Access(アクセス)
-
5
SQLで条件指定結合をしたいがNULLも表示したい
その他(データベース)
-
6
日付型のフィールドに空白を入れる方法を教えてください
その他(データベース)
-
7
LEFT JOIN あいまいな外部結合
その他(データベース)
-
8
選択クエリで空欄のテーブルがあっても表示したい
Access(アクセス)
-
9
「#エラー」の回避
Access(アクセス)
-
10
Accessで、1つの項目に複数の置換えを1度でするには?
Access(アクセス)
-
11
Accessの日付時刻型から日付、時刻カラムを作る
Access(アクセス)
-
12
ACCESSのデータに自動で半角スペースを入れたい
その他(データベース)
-
13
AccessからExcelへエクスポート時に小数点以下の桁数がおかしく
その他(プログラミング・Web制作)
-
14
アクセス 壊れた? 「ファイルが見つかりません」
Access(アクセス)
-
15
ACCESSでのひとつ前レコードの求め方について
その他(Microsoft Office)
-
16
ACCESSのSQLで、NULLかNULLでないかの判定
その他(データベース)
-
17
ACCESS 複数テーブル・複数フィールドを参照する不一致クエリ
Access(アクセス)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
accessで複数年度のデータを蓄...
-
Null同士の結合
-
iPhoneのシステムデータ、3日前...
-
サッポロビールカルサスのデー...
-
SELECTでn行目から最後もしくは...
-
5分ごとのデータ取得
-
システム連携?システム連係?
-
windows 11 へのアップグレード...
-
別のシステムのデータを引っ張...
-
タブレットにナビゲーションバ...
-
稼働率の解き方・計算式を教え...
-
2重化されたサーバが運用停止...
-
ネットワーク
-
美容室の携帯予約システムについて
-
システムインテグレーションと...
-
AVG Freeは自宅サーバーにイン...
-
システム更新とシステム更改の...
-
ITa、ITbという言葉の意味を教...
-
大学の情報課の職員ですがつら...
-
保守契約について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
iPhoneのシステムデータ、3日前...
-
SELECTでn行目から最後もしくは...
-
Null同士の結合
-
accessで複数年度のデータを蓄...
-
AccessとSQL Serverの連携について
-
IMPORT処理速度
-
プログラムからODBCデータソー...
-
5分ごとのデータ取得
-
Orcle10gのDATAPUMPとFASTUNLOA...
-
Oracleクライアントの共存方法...
-
二つのテーブルで比較
-
c言語の問題です。これを踏まえ...
-
ビューのWITH READ ONLYとWITH ...
-
教えて頂けないでしょうか
-
セブンイレブンの7payの開発費...
-
IPVPN経由で使用する業務...
-
Apache, PHP, MySQLの役割
-
Fetchについて悩んでいます
-
スプレットシートのDBについて ...
-
accessのドライバー表示
おすすめ情報