ここから本文です

postgreSQLについてご質問です。 【table02テーブルに、JOINを使ってtable01テ...

佳代さん

2017/2/616:45:47

postgreSQLについてご質問です。

【table02テーブルに、JOINを使ってtable01テーブルの全てのデータを挿入するSQLを作成しなさい。】

という課題があります。

table01に全てのデータが入っていて、02は空の状態です。
ただし列の項目は全て同じ名前に設定してあります。

中身の情報を丸々写すだけなのでしょうが、JOINというワードしかヒントがなく、自分が何を行えばいいのかも分からない状況です。

自分でも調べたのですが、内部結合や外部結合等価結合など知らない言葉ばかりでてきて理解が追いつきません、、、。

これが何結合に当たるのか、
どうすれば私の求める答えに行き着くのか、
お分かりになる方ご教授ください。

よろしくお願いいたします。

補足答えあわせのない課題で、解答もついていないため考え方も分かりません、、
よろしければ下記の質問も解き方と考え方を教えていただければと思います。。


table01テーブルのデータを、名前を昇順で並べたときの上から4件分のレコードを削除するSQL文を作成しなさい。
ただしORDER BY/LIMITを使用すること。

閲覧数:
33
回答数:
1
お礼:
50枚

違反報告

ベストアンサーに選ばれた回答

プロフィール画像

カテゴリマスター

nora1962jpさん

2017/2/618:24:20

補足のほうなら

DELETE FROM table01
WHERE 主キー項目 IN
( SELECT 主キー項目 FROM table01 ORDER BY 名前 LIMIT 4 );

で出来そうです。
ただ、副問合せでのORDER BY指定は厳密に言えばANSI/ISOの標準規格違反ですけど。けっこう多くのRDBMSで可能になってるのも事実ですが。

本題のほうは正直よく分かりません。

無理やりやろうとすれば

INSERT INTO table02
SELECT t01.* from table01 t01 join ( select 1 ) q on 1=1;

と書けますが。
こんなんでいいんですかね?

もともとJOINを使わずに

INSERT INTO table02
SELECT t01.* from table01;

でいいはずなんですけど。

質問した人からのコメント

2017/2/9 11:23:26

そうですよね、、INSERT文を使えばできそうと言うところまでは私もいけたのですがJOINを使えという指示があって…

でも助かりました。
ありがとうございます!

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる