![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
住所情報がない場合であっても、NULLで抽出してきてほしい。
以前、ここで質問していただき、解決したのですが、
新たな問題が発生したので、改めて質問させてください。
他にも色々なテーブルと連携してSQLで情報を抽出しているのですが、
住所情報の入っているテーブルに住所情報がない人が居ます。
ただし、その人の住所以外の個人情報もピックアップして出力したいので、
住所情報が無い人は、住所の列はNULLで出力したいです。
下記に以前質問した時の情報も載せます。
・下記テーブルの他にもいろいろなテーブルと結合させています。
・各テーブルとの結合は個人IDで行っています。
方法はどんな形でも構いません。
もっと細かい情報が欲しい場合は、適宜補足します。
本当は今日中ですが、今週中には仕上げないといけないので、
分かる方がおりましたら、ご回答よろしくお願いします。
―――以下、前回質問した情報―――――――――――――――
同じ行に、二つの住所を出したい。
下記のような場合、どのようなSQLを組めばよろしいでしょうか。
★FROM表
個人ID 識別番号 住所
A 1 東京都品川区~
A 2 北海道札幌市~
A 3 青森県弘前市~
B 1 埼玉県川口市~
B 2 福岡県福岡市~
B 3 宮崎県宮崎市~
・ ・ ・
・ ・ ・
・ ・ ・
★出力結果
A 東京都品川区~ 青森県弘前市~
B 埼玉県川口市~ 宮崎県宮崎市~
↑ ↑ ↑
個人ID 識別1の住所 識別3の住所
イメージとしては以下のような感じです。
識別1:現住所、識別2:保証人住所、識別3:本籍住所
上表を例にすると、
Aさんの現住所は東京都、本籍地は青森県
Bさんの現住所は埼玉県、本籍地は宮崎県
といったかんじです。
ただWHERE ANDでは、どちらかしか引っ張って来れないので、
なにか他の方法がありましたら、教えてください。
よろしくおねがいします。
No.3ベストアンサー
- 回答日時:
>実はその方法までは検索で行き着いております。
>ただ、下記エラーが出てしまいます。
>ORA-01427: 単一行副問合せにより2つ以上の行が戻されます
このエラーが発生するときのSQLを出せる範囲で提示してもらえませんか?
質問内容と希望する回答がなんだか違っているように思えますが・・・
このエラーはselectの列指定かwhere句の条件指定でselect吹副問い合わせをしているときに出ます。私があげた例では、副問い合わせは使用していないので出ないはずです。
ちなみに同一個人ID、識別番号のデータを探すのなら、以下のselect文でいけるはずです。
select 個人ID, 識別番号 from 住所テーブル
group by 個人ID, 識別番号
having count(個人ID) > 1 and count(識別番号) > 1
この回答への補足
了解しました。
かなり個人情報だらけなので、
SQLは出せますが、他のテーブル内容などは厳しいかもしれません。
再度補足連絡します。
ありがとうございます。
結合関係ではうまく解決できなかたったので、
いままでのソースを見直して、
うまくほかの方法で解決しました。
No.2
- 回答日時:
WHERE AND で結合しているのなら、以下のようにしているかな?と思います。
select a.個人ID, b.住所
from 個人テーブル a, 住所テーブル b
where a.個人ID = b.個人ID
and b.識別番号 = 1
(現住所の場合)
で、同時に本籍住所を出したい場合は・・・
select a.個人ID, b.住所 as 現住所, c.住所 as 本籍住所
from 個人テーブル a, 住所テーブル b, 住所テーブル c
where a.個人ID = b.個人ID
and a.個人ID = c.個人ID
and b.識別番号 = 1
and c.識別番号 = 3
さらに現住所や本籍住所が一致しない場合でもnullでデータ出力を行うので・・・
select a.個人ID, b.住所 as 現住所, c.住所 as 本籍住所
from 個人テーブル a, 住所テーブル b, 住所テーブル c
where a.個人ID = b.個人ID (+)
and a.個人ID = c.個人ID (+)
and b.識別番号 = 1
and c.識別番号 = 3
という感じになると思います。
この回答への補足
実はその方法までは検索で行き着いております。
ただ、下記エラーが出てしまいます。
ORA-01427: 単一行副問合せにより2つ以上の行が戻されます
単一行副問い合わせなので、
誰かのIDで2行以上の情報を抽出してしまっているものだと思いますが、
対象者を発見できなくて困っています。
住所テーブルからの抽出方法は、下記情報より分けています。
・個人ID
・住所区分(本籍地か現住所か)
・更新回数(住所変更があった場合、上書きではなく1,2,3・・・と区別をつけています)
なにか対象者を確定できたり、バグ取りする方法があれば
教えていただけると幸いなのですが・・・。
No.1
- 回答日時:
個人テーブルと住所テーブルとの結合を外部結合にすればいいのでは?
現在、どのようにおこなってますか?
>・下記テーブルの他にもいろいろなテーブルと結合させています。
>・各テーブルとの結合は個人IDで行っています。
以下のように外部結合をすれば住所テーブル側にレコードがなくてもNullで選択出来ます。
from 個人テーブル as a
left outer join 住所テーブル as b
on a.個人ID = b.個人ID
結合について調べてください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 【Excel】住所に郵便番号を付記する方法 3 2022/05/07 17:15
- 転職 長く続けられる好条件の求人でしょうか? 3 2023/07/12 18:45
- ニュース・地域情報 兵庫県尼崎市の全市民約46万人分の住民基本台帳情報などを記録したUSBメモリーが一時紛失した問題です 2 2022/07/15 09:45
- 関東 ※東北の人からのにわか質問で不快に来たりムカついたらすいません、悪気はありません。 東京方面に住む人 8 2022/08/03 18:17
- 大学受験 長崎県立大と北九州市立大で悩んでいます 2 2023/02/19 05:53
- 政治 関東で相次ぐ「強盗事件」対策はアメリカに学ぶべきですよね? 4 2023/01/21 11:39
- PHP PHPでCSVを出力するさいに、ループの中で前の行の値を変更したい 1 2022/10/27 14:21
- 確定申告 【白色申告】1月に引越したがe-taxでの納付先は新住所でいいのか? 2 2023/02/26 01:47
- 占い 霊能力者って、迷宮入り事件を霊視して、警察へ密告して解決って出来るんですか? 情報提供 6 2022/07/04 12:39
- Access(アクセス) ACSESS初心者です マンション管理をACCESSで出来ないかとチャレンジしています。 リレーショ 3 2022/10/08 11:45
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
GROUP BYを行った後に結合した...
-
SELECTの結果で同一行を複数回...
-
固定値を含む結合と複数テーブ...
-
select insertで複数テーブルか...
-
外部結合とor条件混在の記述方法
-
副問い合わせのinsert文
-
unionの結果は集計はできないで...
-
MERGE文を単体テーブルに対して...
-
select句副問い合わせ 値の個...
-
SQLでの絞り込み検索
-
複数テーブルのMAX値の行データ...
-
updateの一括実行
-
Oracle[10g]のSQL文について
-
SQL GROUPで件数の一番多いレコ...
-
oracleの分割delete
-
SET句内で複数の条件を指定して...
-
マテビューのNOTNULL設定について
-
SQLの重複選択について
-
unionでマージした副問合せを結合
-
複数のテーブルに対してのleft ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
GROUP BYを行った後に結合した...
-
select句副問い合わせ 値の個...
-
select insertで複数テーブルか...
-
SELECTの結果で同一行を複数回...
-
MERGE文を単体テーブルに対して...
-
他のテーブルを参照した値はupd...
-
SET句内で複数の条件を指定して...
-
固定値を含む結合と複数テーブ...
-
SQL GROUPで件数の一番多いレコ...
-
oracleの分割delete
-
外部結合とor条件混在の記述方法
-
unionの結果は集計はできないで...
-
複数テーブルのMAX値の行データ...
-
unionでマージした副問合せを結合
-
集計後の数値が倍になる
-
構成比を求めるSQL文につきまして
-
COUNTの取得方法(?)について...
-
SQLの書き方(チェックボックス)
-
結合と副問い合わせの違い
-
DELETE 文とEXISTSの使い方につ...
おすすめ情報