HOME»データベーススペシャリスト掲示板»R3 午後1 問3 設問1(3) について
投稿する

R3 午後1 問3 設問1(3) について [0697]

 ttaさん(No.1) 
こちらの問題の「c」の解答例が「UNION ALL」ですが、「UNION」の方が適切ではないでしょうか?
今回のシナリオでは無いような気がしますが、万が一重複が発生した場合、主キー制約に引っかかってエラーが生じるため適切でないように感じます。
解答例としても[UNION ALL」のみが解答例になっているため、何か見落としがあるのでしょうか…
ご教示いただけますと幸いです。
2024.08.11 12:19
みかんさん(No.2) 
DB ブロンズマイスター
>万が一重複が発生した場合、主キー制約に引っかかってエラーが生じるため適切でないように感じます。
  具体的なデータを例示できますか?
2024.08.11 13:06
GinSanaさん(No.3) 
DB ゴールドマイスター
エアコンがある物件、でA1の設備コードと物件コードの組み合わせを出して、オートロックがある物件、でA2の設備コードの物件コードの組み合わせを出して、ってやったら、どっちも元々ある物件でもキー重複しませんよね。

まあ、union distinctで何か困ることがあるか?といったら、この場合はないですけどね。でも、必要もないのにdistinctは書かないですね。
2024.08.11 13:18
 ttaさん(No.4) 
>みかんさん、GinSanaさん
コメントありがとうございます。
設備コードが手打ちだったので人為的ミスがあったら嫌だなあくらいのイメージでした
ALLを省略するとDISTINCTになることからも、原則DISTINCTで必要な時にALLをつけるのかなといったイメージだったんですが、むしろ逆な感じなんですね…
勉強になりました!
2024.08.11 14:13
GinSanaさん(No.5) 
DB ゴールドマイスター
>設備コードが手打ちだったので人為的ミスがあったら嫌だなあくらいのイメージでした

むしろ、エラーが出てくれないと、それ(人為的ミス)に気付けないのではないですか。その結果、握りつぶす(distinct)べきなのか、また考え直すのかは別の話ですが、最初から握りつぶす前提は好手ではないです。
2024.08.11 16:34
返信投稿用フォームスパム防止のためにスレッド作成日から30日経過したスレッドへの投稿はできません。
© 2016-2024 データベーススペシャリストドットコム All Rights Reserved.

Pagetop