竹形誠司 ブログ
ご質問    »トピック一覧
掲示板へのスパムが多いため、「ご質問」のコーナーはユーザー登録制とさせていただきました。お手数ですが、上の「新規ユーザーの登録」メニューより登録をお願いします。
帳票Web
アプリケーション

受注開発始めました
詳しくは こちら
竹形 誠司 著/ラトルズ刊
JSP帳票アプリケーション実践開発入門
JSP帳票アプリケーション
実践開発入門

JSP業務アプリケーション短期開発入門
JSP業務アプリケーション
短期開発入門

Java+MySQL+Tomcatで始めるWebアプリケーション構築入門
Java+MySQL+Tomcatで始めるWebアプリケーション構築入門

Java+MySQL+Tomcatで作る掲示板とブログ
Java+MySQL+Tomcatで作る
掲示板とブログ
java mysql tomcat で始めるwebアプリケーション構築入門p458について
by じょん[atp]
竹形先生 こんにちは。
「webアプリケーション構築入門」
先生のご助力もありまして、もう少しで読破というところまで読み進める事が出来ました。

最後の方でまたどうしても理解出来ない箇所がありましたので、質問させていただきます。

p457およびp458にありますloadTopicsまたはloadCommentsメソッドの所です。

SQL分に

"SELECT *,user.real_name FROM topic"

という記述があるのですが、LEFT JOIN を行った後に表示させるカラムが「*」とuser.real_nameになっているのはどういう意図があるのでしょうか?

表示されるカラムに「*」が指定されているのであれば、user.real_nameを指定する必要はないのでは? と思ってしまうのですが。

ご回答をお待ちしております。
投稿:じょん[atp]/2011年 09月 21日 16時 42分 /更新:2011年 09月 21日 16時 42分
RE:java mysql tomcat で始めるwebアプリケーション構築入門p458について
by 竹形 誠司[takegata]
竹形です。どうも。

一般論で言いますと、AとBのテーブルをJOINする場合、AとBに
同じ名前のカラムが存在する可能性があり、テーブル名を
指定しないとエラーになってしまうことがあります。

ご質問のケースがどうだったか今すぐ試せないのですが、
テーブル名を削除して試してみてください。エラーにならなければ
テーブル名は指定しなくても大丈夫です。
投稿:竹形 誠司[takegata]/2011年 09月 21日 16時 50分 /更新:2011年 09月 21日 16時 50分
RE:java mysql tomcat で始めるwebアプリケーション構築入門p458について
by 竹形 誠司[takegata]
竹形です。どうも、
質問の主旨を読み違えていました、すみません。
*,user.real_name の部分は、topicテーブルの全てのカラムとuserテーブルのreal_nameカラムをリザルトセットに含めるという意味です。nextメソッドの中でgetString("real_name")を実行すると、userテーブルのreal_nameカラムから文字列を取得しますが、SELECT文でuser.real_nameを指定しておかないとここでエラーになってしまいます。

疑問に思ったときはコードを削って何が起こるか試してみることをおすすめします。
投稿:竹形 誠司[takegata]/2011年 09月 23日 09時 17分 /更新:2011年 09月 23日 09時 19分