SQLで2つの表から条件に合ったデータを取り出し、同じ列に表示させたいのですが、
どうやっても外部結合のようにすることしかできませんでした。
取り出したデータを縦に結合?させることはできるのでしょうか?
例) dataは月の上旬中旬下旬でそれぞれabcとします。
入力値はmonthとdayで、これらからuriageを選択します。
dataの取りうる値はa,b,c,ab,bc,abcとします。
table:A 売上表 table:B 上旬中旬下旬判断
--------------------------- -----------
key | data | month | uriage day | data
--------------------------- -----------
1 | a | 1 | 500 1 | a
2 | ab | 1 | 800 … | …
3 | bc | 1 | 400 10 | a
4 | c | 1 | 100 11 | b
5 | abc | 1 | 900 … | …
… | … | … | … 31 | c
--------------------------- -----------
month = 1 , day =5のとき
table:Bより
SELECT data FROM table:B WHERE day = 5
としてdata "a" を得ます。
この"a"と同じdataを持つuriageを表示させたいので
SELECT uriage FROM table:A
WHERE month = 1 AND data = (SELECT data FROM table:B WHERE day = 5)
として
table:query1
--------
uriage
--------
500
--------
を得ました。
ここまでは良いのですが、これに付け加えて、
table:Bから取り出したdata "a"をtable:Aのdataが含むとき(data = a,ab,abcのとき)
その全てのuriageを表示させたく、
ワイルドカードを使おうと
SELECT uriage FROM table:A
WHERE month = 1 AND data = %(SELECT data FROM table:B WHERE day = 5)%
等としてみたのですが、上手くいきませんでした。
そこで、別のクエリーを作って
SELECT uriage FROM table:A
WHERE month = 1 AND data = 'ab' AND data = 'abc'
として
table:query2
---------
uriage
---------
800
---------
900
----------
を得ました。
そして、最後に、
得られた2つの表をまとめて
---------
uriage
---------
500
---------
800
---------
900
---------
としたいのですが、
SELECT uriage, uriage FROM query1, query2
とすると
------------------
uriage | uriage
------------------
500 | 800
500 | 900
------------------
となりますし、UNIONは使い方がよくわからないためシンタックスエラーにしかならず...。
そもそも、縦に結合?はできるのでしょうか???
あれこれ試してみたのですが、詰まってしまったので、
どなたか知恵をお貸しください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) pythonでDBのカラム名で取得したオブジェクトの値を表示したい 1 2022/05/13 03:41
- Access(アクセス) アクセス 有効なフィールド名、または式として認識できませんのエラー 3 2022/08/19 11:53
- Access(アクセス) アクセス where句を使用して複数条件抽出をするには 2 2022/08/29 13:24
- JavaScript EasyUIのSubGrid(jquery)におけるObjectに入れた連想配列について 1 2022/05/02 11:21
- PHP if(preg_match("/[^0-9]/",$gu_d)){意味を教えてください。 1 2022/05/06 05:37
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- Oracle 下記のsqlで取得されるレコード以外を取得する方法ありますでしょうか。 SELECT B.番号, B 2 2022/04/20 23:21
- その他(プログラミング・Web制作) Python - Excel で Webからデータを連続取得したいのですが エラーが出ます 1 2023/07/06 20:08
- AJAX JavascriptからPHPへのAjax通信でnullが返ってくる 3 2022/08/03 22:00
- PHP PHPでMysqlにデータがあるかどうか判別したい 1 2023/03/02 11:48
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
SELECT INTOで一度に複数の変数...
-
データの入れ替えを同時に行な...
-
UPDATEの更新前の値を取得したい
-
複数の条件に該当する結果を、...
-
複数カラムでdistinct
-
フラグをたてるってどういうこ...
-
【SQL】他テーブルに含まれる値...
-
UPDATEで既存のレコードに文字...
-
truncate tableを使って複数の...
-
sqlに記述できない文字
-
集計でテストの各教科の最高得...
-
エラーを起こす方法
-
文字列を追加してUPDATEしたい
-
テーブル名が可変の場合のクエ...
-
Excel VBAのユーザーフォームで...
-
PostgreSQLのtimestamp型で時間...
-
既にテーブルが存在する場合の...
-
CSVファイルを読み込んでテーブ...
-
データ無し時は空白行にしたい...
-
SQLで、Join句で結合したテ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SELECT INTOで一度に複数の変数...
-
SELECTした結果に行番号を求めたい
-
UPDATEの更新前の値を取得したい
-
複数の条件に該当する結果を、...
-
データの入れ替えを同時に行な...
-
PLPGSQLでの複数行複数列
-
複数カラムでdistinct
-
SQLで小数点の計算がしたいです。
-
Postgreが重いです
-
FETCH した行が取り出せない
-
テーブル間の差分抽出方法は?...
-
プログラムよりファンクション...
-
数値を単一引用符で囲むのはど...
-
SQL 表の結合
-
文字列の並び替えについて
-
副問合せで複数列の値リストの...
-
ダブリ数字の有無の確認にのマ...
-
【SQL】他テーブルに含まれる値...
-
フラグをたてるってどういうこ...
-
sqlに記述できない文字
おすすめ情報