SQLコマンド(DELETE文)」からの出題です。例題3.97テーブルxxxの主キー列はinteger型のid、テーブルyyyの主キー列はinteger型のidである。xxxとyyyの両方に同じidの行がある場合に、それらの行をすべてxxxから削除したい。2と3と4を返したとして、idが2の行と3の行をxxxから削除する。これを実現するSQLはどれか。yyy);※この例題は実際のOSS-DB技術者認定試験とは異なります。WHERE句の条件に合致した行のみが削除されますが、WHERE句を省略するとすべての行が削除されるので注意してください。削除対象となる行を決定するために他のテーブルを参照したい場合もよくありますが、その場合も通常はWHERE句にその条件を記述します。SELECT文とは違い、他のテーブルを参照したいからといって、FROM句に複数のテーブルを列挙することはできません。選択肢AやBはFROM句に複数のテーブルがあるため構文エラーになりますが、このような記述が許されるとしたら、どちらのテーブルから行を削除すれば良いのかわかりませんよね。選択肢CのようなJOINを使ったテーブル結合もできません。WHERE句で他のテーブルを参照する場合、よく使われるのがINとEXISTSです。(値リスト)の形式で指定しますが、値リストとして、列を1つだけSELECTするSELECT文を書くと、そこで返される値が展開されたリストになります。4)のように展開されて実行されます。これは期待する結果が得られる正しい選択肢です。選択肢Eは構文エラーにはならずに実行されますが、テーブルxxxのid列が参照されていません。yyy)の部分は真となり、テーブルxxxのすべての行が削除されます。yyy.id)のように記述すれば期待する結果が得られます。PostgreSQLのDELETE文ではUSING句で参照先のテーブルを指定してテーブル結合することができます。yyy.id;としても、期待する結果を得ることができます。今回の解説について、理解できないポイントがあればどんどん質問をお寄せ下さい。採用になった方にはLPI-Japanオリジナルの記念品を贈呈します。ご質問・ご意見はこちら※試験問題に関わるお問い合わせにつきましては、LPI-Japan事務局ではお応えできませんのでご了解ください。アーカイブを試験ごとにまとめています。ご紹介OSS-DB認定教材や教育機関について詳しくご説明いたします。受験準備をされていらっしゃる方々を対象に、無料技術解説セミナーの日程をお知らせしています。受験準備をされていらっしゃる方々を対象に、無料技術解説セミナーの日程をお知らせしています。メリット受験対策インタビューFAQ資料請求・お問い合わせプライバシーポリシーこの内容で送信します。よろしいですか?キャンセル。