Baseのクエリーで、フィールドが一致しないレコードも一緒に出力させるには

Baseのクエリーで

2つのテーブルを1つのフィールドでリンクさせています。

2つのテーブルをリンクしているそのフィールドは、データの個数が一致していません。

クエリーを実行すると、フィールドが一致するレコードしか出力されないのですが、

【質問】両者でフィールドが一致しないレコードも一緒に出力させるにはどうしたら良いですか?

【換言】「両者でフィールドが一致しないレコードも一緒に出力させるには?」とは、
サンプルで質問を換言させていただきます。

クエリでこういう取り纏めをしたいのですが、どういう結合方法が一般的なのでしょうか?

テーブル 取扱商品名----------------------

a店

b店

c店

F店

G店

テーブル 取扱サービス名----------------------

a店

c店

d店

e店

クエリ 取扱商品名 取扱サービス名----------------------

a店

b店

c店

d店

e店

F店

G店

1 Like

未検証。内部結合を変更することはできるか。

(追記)あ、ダメか。どちらかを基準にすることまでは出来るけど。

質問者です。
検証いただきお手数おかけしております。
こういうデータベースの操り、素人なもので難儀しています。

単純に機能なければ、2つのテーブルのリンクを一本だけでなく、更にリンクさせるテーブルを追加したりして、手法を編み出すのでしょうが、私には閃きが来ません。
データベース玄人の方は、どう解決されるのか、目からウロコの新アイデアでも歓迎です。

DBにFirebirdを御利用という前提になりますのでご了承ください。

UNIONクエリーは試しましたか?

重複を認める(まとめる)連結ということなので、お互いのテーブルで作成したSELECT文をUNIONで結合する方法で
重複を認めない場合はUNION ALL で結合する方法になります。

※留意点※
UNIONクエリー作成及び実行時にはクエリーデザイン画面の×ボタン右横にある「SQLコマンドを直接実行」ボタンを有効にしてください。

SELECT “店舗名称” FROM “テーブル取扱商品名”

UNION

SELECT “店舗名称” FROM “取扱サービス名”

ORDER BY 1 ASC

並び替え時の項目指定は番号でも項目名でも可能と思いましたが項目名で指定するとエラーになるなぁ・・・?。

また

UNIONの場合、GROUP BYの集計時の書き方が特殊です
例では、テキスト列をグループ化して整数列を合計しています。

SELECT “テキスト”, SUM( “整数” ) “合計” FROM

(

SELECT “テキスト”, “整数” FROM “table001”

UNION ALL

SELECT “テキスト”, “整数” FROM “table002”

)

GROUP BY “テキスト”

ご参考までに!

質問者です。ご丁寧な解説をいただき、恐悦至極でございます。
私のレベルでは少しハードルが高そうですが、トライのしがいがありそうです。
私の向上のためにも頑張ってみます。
ありがとうございます。