H26春問6題門2

とんさん  
(No.1)
質問失礼いたします。
今更で恐縮なのですが、
表題の問で答えが「ユーザID=:ユーザID」と、
テーブル修飾が無いものです。

問題文にはテーブル修飾を書けと指摘がない為、当たり前とは思いますが、
最近の出題内容では、テーブル修飾の指摘がない時でも答えが「webユーザ.ユーザID=:ユーザID」のように、テーブル修飾ありだったりします。
普段はSQL文の前後で見分けるしかないとは思いますが、表題の問いだと回答を書き込む以外の欄で、
テーブル修飾が回答として必要か判断がつかないと思います。
このように曖昧な時はどう判断しているかをご教授いただけますと幸いです。

よろしくお願いいたします。
2021.10.02 09:41
とんさん  
(No.2)
すみません、質問内容が正確ではありませんでした。
過去の同様スレッドを拝見したところ、
テーブルが一つなら修飾はいらないという事でした。

本門は From webユーザですが、
From webユーザ,◯◯もしくはjoin系で結合した場合は、テーブル修飾が必須になるという理解でよろしいでしょうか。
2021.10.02 12:59
GinSanaさん 
AP プラチナマイスター
(No.3)
>テーブルが一つなら修飾はいらないという事でした。
テーブルが1つなら、登場させる列名は基本的に一意になるからいらない(なくてもDMBS側で構文解析段階でテーブル名が補完される)ということです。

>本門は From webユーザですが、
>From webユーザ,◯◯もしくはjoin系で結合した場合は、テーブル修飾が必須になるという理解でよろしいでしょうか。
DMBSで構文解析エラーを起こすのは、たとえば結合条件に使う列名が一意にならない(左に来るテーブルと右のテーブルで同じ列名がいるとか)のに、テーブル修飾をしていない、Selectに使う列名が一意にならないのにテーブル修飾をした上でASで別名をつけていない(ASを省略するとDMBSの構文解析上は同名の別名をつけた扱いとなる)とか、そういうケースにならなければテーブル修飾はやらんでもよい、ということです。
構文エラーにならん書き方ならマルになる、そういうもんです。
2021.10.02 13:22
とんさん  
(No.4)
回答ありがとうございます。
主として、一意性を保持できているかが判断の軸ということですね。
2021.10.02 15:47

返信投稿用フォーム

スパム防止のためにスレッド作成日から30日経過したスレッドへの書込みはできません。

その他のスレッド


Pagetop