前回3つ以上のテーブルの結合に関しての続きです。
お手数ですが再度アドバイスお願いします。
select *
from テーブル1 x,テーブル2 y,テーブル3 z
where
x.店舗コード=y.店舗コード(+) and
x.店舗コード=z.店舗コード(+) and
x.店舗コード in (選択したい店舗のカンマ区切りのリスト)
この結果を実行したのですが
どうやら店舗コードが複数行(実際には2行)抽出されてしまいました。
そこでgrpup句を使用してみましたがエラーになってしまいました。
結合ではグループ化はできないのでしょうか?
大変お手数ですが対処法を教えて頂けますでしょうか。
また、補足でお願いできましたら
上記のSQL句の(+)とは何を意味しているのでしょうか?
私の所有している参考書の結合の箇所には
そういった記述がありませんでした。
お手数ですがよろしくお願いします。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
結合後のGROUP BY句でも、文法が正しければ使用できます。
エラーになったSQLを提示してもらわないと、これ以上はなにも言えません。
(+)の表記は、外結合を表します。(+)を付加しない場合は、内結合になります。
参考書は、なにを使用されているのでしょうか?
ORACLEに特化したものであれば、記載があると思いますが、
標準SQL規格には含まれていないので、
汎用的な参考書だと記載されていないかもしれません。
あえて、(+)のような表記を使わず
「LEFT OUTER JOIN」、「INNER JOIN」のような標準SQLでの
記述と、それぞれの意味を勉強された方が良いかと思います。
No.2
- 回答日時:
(+)は、今回の場合だと
・「テーブル1 x」のレコードは全部出す。
・他のテーブルの列は「テーブル1 x」に
紐付くデータをくっつけて表示
・もしも紐付くデータが無い時はNULLを表示という意味です。
↓にコピペでそのまま動作する結合のgroup byを用意したので
参考にして下さい。
---------------------------------
with a as(
select '001' as ID,1 as SAL from dual
union all
select '002',2 from dual
union all
select '003',3 from dual
union all
select '004',4 from dual
),
b as (
select '001' as ID,1 as SAL from dual
union all
select '001',1 from dual
union all
select '003',3 from dual
union all
select '005',5 from dual
)
--↓ここから重要
select b.ID,b.SAL from a,b where a.ID(+) = b.ID
group by b.ID,b.SAL;
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PostgreSQL PostgreSQL レコードからアイテム種類数を取得したい 2 2022/11/23 22:31
- Visual Basic(VBA) ACCESS DAO で不要なテーブルのフィールド(列)の削除 4 2022/06/23 12:13
- MySQL 複数DBテーブルからのデータ取得 3 2022/05/17 15:02
- MySQL SQLです。こんな感じですか?あってますか? うまくいきません教えてくださいお願いします 1 2023/07/08 15:27
- MySQL うまくいきません教えてくださいお願いしますSQLです。クエリ構文です。 1 2023/07/07 12:39
- 英語 ①普通名詞の所有格+②普通名詞で、①普通名詞に定冠詞の意味を付加したい場合の表現方法等について 23 2022/09/30 12:47
- その他(お金・保険・資産運用) 至急!【Wolt】各メニューの価格設定の簡単な計算方法 3 2023/03/05 11:58
- アルバイト・パート コインランドリー清掃のバイト(おそらく委託)、 一回、1時間らしいです。1,000円 交通費出ません 5 2022/05/21 07:02
- その他(業種・職種) 風俗店の面接、契約に関する交通費について 1 2022/08/27 12:31
- 政治 日本の定数人口当たり民事訴訟件数は、ドイツ、韓国の1/3しかない。 2 2023/02/02 16:11
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
select句副問い合わせ 値の個...
-
GROUP BYを行った後に結合した...
-
select insertで複数テーブルか...
-
SET句内で複数の条件を指定して...
-
oracleの分割delete
-
V$SGAとV$PARAMETERの確認
-
select文でフリーズします。
-
データベースの基礎かもしれま...
-
unionでマージした副問合せを結合
-
2つのテーブル結合
-
SQL 年だけ抽出
-
外部結合とor条件混在の記述方法
-
SELECTの結果で同一行を複数回...
-
unionの結果は集計はできないで...
-
Accessで別テーブルの値をフォ...
-
エクスプローラーで「2つの条件...
-
ファイル書込みで一行もしくは...
-
<SQL>条件付きで最小値レコード...
-
SQLServer 日付が直前のレコー...
-
SQL>UPDATEと同時にその件数を...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
GROUP BYを行った後に結合した...
-
select句副問い合わせ 値の個...
-
select insertで複数テーブルか...
-
SELECTの結果で同一行を複数回...
-
MERGE文を単体テーブルに対して...
-
固定値を含む結合と複数テーブ...
-
複数テーブルのMAX値の行データ...
-
他のテーブルを参照した値はupd...
-
unionの結果は集計はできないで...
-
外部結合とor条件混在の記述方法
-
oracleの分割delete
-
SET句内で複数の条件を指定して...
-
SQL GROUPで件数の一番多いレコ...
-
DELETE 文とEXISTSの使い方につ...
-
COUNTの取得方法(?)について...
-
集計後の数値が倍になる
-
SQLの書き方(チェックボックス)
-
unionでマージした副問合せを結合
-
結合と副問い合わせの違い
-
副問い合わせのinsert文
おすすめ情報