社員テーブルと障害テーブルA、Bがあります。
社員テーブル(社員ID、発見者名、・・・etc)
障害テーブルA(障害番号、発生日、・・・etc)
障害テーブルB(事象、ステータス、対応内容、・・・etc)
社員ID、障害番号、事象、ステータスのSELECT結果を
一つのcsvファイルとして取得するプログラムを作成したいのです。
「複数のテーブルから」「任意の」列を指定して、
検索結果を「csvに出力」する方法がどうしても分かりません。
どのようなSQLになるでしょうか?
うまく伝わっているでしょうか?
よろしくお願いします。
A 回答 (6件)
- 最新から表示
- 回答順に表示
No.6
- 回答日時:
>ですので、意味や要素の関係性は度外視して下さい。
残念ですが、この言葉が、この文脈で出てくる時点で、データベースの意味・しくみ・使い方の基本の基本が出来ていないと判断せざるを得ません。
なぜなら、本来、テーブルの構造というのは、フィールドの意味とフィールド間の関係を定義したものです。検索を含む全てのデータベース操作は、テーブルの構造に依存して行われるものです。
というわけで
>要点は
>(1) 複数のテーブルから
>(2) それぞれ任意の列を指定して検索、
>(3) その結果を結合した一覧を1つのCSVファイルに出力
これに答えるためには、あなたが「度外視してください」と言われるそこに全てのポイントがあるんです。
フィールドの意味も関係も、テーブルの構造も解らずにSQLをはじめとするデータベース操作全般を一般論として解説せよという質問でしたら、それこそ本になりますので、ここで解説することは不可能です。
アドヴァイスとしては、データベースの入門書から勉強されることをお勧めします。このデータベースの分野に関しては、断片的な知識だけで利用できるほど単純なものではなかったりしますので。
No.5
- 回答日時:
やはり、まだ答えることは難しいです。
キーというのは1つのテーブルの中でレコードを1意に決めるものです。
しかし、2つのテーブルを結合した場合、キーの結合には
1体1、1対多、多対1の3通りがあるのです。
もし、1体1の結合ができているのならば、レコードの数はキーが
一致している数になり、基本的に1つのテーブルと同じように
データの取得やや更新、挿入ができます。
しかし、1体多の場合は、レコード数が多くなり、レコードの取得は
できても更新や挿入ができないのが普通です。
もし、取得だけが目的であり、1意の共通したキーがあるのならばビューを
作ってみてはどうでしょうか。それならば複数のテーブルにあるフィールドが
1つのテーブルにあるように操作できます。
No.4
- 回答日時:
仮のテーブル、仮の列名、どの項目がキーなのかもわからないのではSQLは書けないのでは?
ちなみに同じ質問をされているみたいですけど
http://oshiete.goo.ne.jp/qa/6606965.html
早々に閉めきるか、管理に言って削除してもらってください。
No.3
- 回答日時:
短時間にNo.1の方と同じような回答になりましたが、
ほぼテーブル設計ミスが確定したと言えるでしょう。
私が怪しいと思ったのは
社員テーブル(社員ID、発見者名、・・・etc)です。
写真IDの次は社員名でないといけないはずです。
発見者というのは障害の発見者と推測しますが、これは
障害テーブルに持つべきデータです。
また、障害テーブルBにはレコードを一意に決めるID自体が
存在しないようです。AとBは同じテーブルでいいのでは
ないでしょうか?
社員データと障害データがどのゆおに結びつくのかわかりませんが、
多分、障害データに社員IDを持たせないといけないはずです。
ところで、お使いのDBは何でしょうか?
Accessでしょうか?Oracleでしょうか?
それによってもSQLは微妙に異なります。
この回答への補足
すみません、質問の仕方が良くなかったですね。
上記に挙げたテーブルの中身はあくまで例であり、
実際は"発見者名"や"事象"といった列名ではありません。
実データが手元になく、仮の列名で質問させていただいています。
ですので、意味や要素の関係性は度外視して下さい。
要点は
(1) 複数のテーブルから
(2) それぞれ任意の列を指定して検索、
(3) その結果を結合した一覧を1つのCSVファイルに出力
この一連の処理を行う1本のプログラムを作りたいのですが、
経験が浅くてどうにも難しく、詰まってしまったのです。
キー項目はそれぞれのテーブルに存在していますので、
『~XXXX [キー1]』等と代入して考えられるように
ご説明いただければ、非常に助かります。
使用環境は、
OS:UNIX
DB:Oracle
です。
質問もへたくそで申し訳ありませんが、よろしくお願いします。
No.2
- 回答日時:
SQL文は
Select 社員ID、障害番号、事象、ステータス
from 写真テーブル,障害テーブルA,障害テーブルB
でできます。
しかし、これでは全テーブルのデータを積算した数のレコードが
発生します。例えば、社員テーブルが1000件、障害テーブルAが600件、
障害テーブルBが300件であったとき、全レコードは1億8000万件に
なってしまいます。
ですから、テーブル設計時にこれらをつなぐキーを決めておかなければ
ならないのです。これらはいったいどのフィールドでつながるデータ
でしょうか?
No.1
- 回答日時:
「うまく伝わっているでしょうか?」
伝わっていません。
「どのようなSQLになるでしょうか?」
障害テーブルAに項目として、「社員ID」がありますか?
障害テーブルBに項目として、「障害番号」がありますか?
無いなら、データを関連づける(リレーションする)項目がないので、取り出しようがありません。テーブルの設計ミスです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Oracle sqlで質問です。 Aテーブルの登録番号をキーにBテーブルから確認番号を取得したいのですが、Bテーブ 4 2023/05/18 13:08
- SQL Server [SQLServer] テーブル名からカラム名を取得する 1 2022/08/23 21:20
- Oracle sqlで質問です。 aテーブルとbテーブルがあり、下記のsqlで取得したidとnameに一致しないレ 1 2022/04/20 20:34
- Oracle 質問です。 下記のテーブルとデータがあり、 取得想定結果のように出力したいです。 下記のsqlだと0 2 2023/05/23 19:10
- Oracle sqlで質問です。 Aテーブルの情報をBテーブルに更新かけたいです。 やりたいことは、Bテーブルの受 1 2023/05/17 11:17
- Oracle 下記のsqlで取得されるレコード以外を取得する方法ありますでしょうか。 SELECT B.番号, B 2 2022/04/20 23:21
- Access(アクセス) access,vbaでフォルダ内のファイルをテーブルにインポート、ファイル名もフィールドに追加したい 1 2022/08/31 11:11
- PostgreSQL postgreSQL カラムの全ての値を取得したい 3 2022/10/07 12:33
- Ruby pandasでsqlite3にテーブル作成・追加・読み出しでindexの取り扱い方教えてください 5 2023/03/08 09:57
- SQL Server ACCESSで表が作りたく、そのためのSQL文や設定方法を教えてください。 1 2022/08/15 12:28
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
SQL 複数テーブルのupdate
-
LONG型の先頭250バイトを Varch...
-
SQLでSUMなどの関数でデータが...
-
SQL、2つのテーブルで条件一致...
-
特定のカラムが更新されたとき...
-
テストデータ作成に苦労しています
-
update文で改行を入れる
-
複雑な抽出条件のSQL文
-
DELETE文のWHERE条件にSUBSTRを...
-
sqlplusで表示が変なので、出力...
-
DBからタブ区切りのCSVデータを...
-
SQLです!!教えてください。
-
男性と2人で飲食店に行きテーブ...
-
QSL でのフォーム画面作成について
-
下の画像はSQLの4大命令の性質...
-
Excel テーブル内の空白行の削除
-
[1000地域 × 10カテゴリー = 1...
-
ちょっとぐらいの時間なら里山...
-
Notion@リレーション値の取得...
-
このテーブルで
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
テーブル名をカラムとして取得...
-
SQL、2つのテーブルで条件一致...
-
update文で改行を入れる
-
ROWNUMでUPDATEをしたいのです...
-
sqlplusで表示が変なので、出力...
-
SQL 複数テーブルのupdate
-
SQL*LoaderでCSVから指定した列...
-
SQLでSUMなどの関数でデータが...
-
SQLで違うテーブルの値を比較し...
-
カラム位置変更
-
UPDATE文
-
件数とデータを同時に取得する...
-
特定のカラムが更新されたとき...
-
Oracle(オラクル)で、日付時刻...
-
半角英数文字の抽出がしたい。
-
数値をNUMBER型にするかCHAR型...
-
DELETE文とロックについて
-
Oracleのview、synonymをCOMPIL...
-
SQL(oracle)でご助言いただきた...
-
SELECT文で指定桁数分抽出する...
おすすめ情報