dポイントプレゼントキャンペーン実施中!

SELECTで複数テーブルから、全カラム値を取得する際、同名カラムがあったとき、指定テーブルの値を取得したいのですが、どうすれば良いでしょうか?

◆前提
・テーブル「r1」
・テーブル「t1」
・テーブル「u1」
※「r1」「u1」には、同名カラム「z2」あり

◆やりたいこと
・条件一致する全てのデータを取得したい
・但し、「z2」カラムの値は、「r1」テーブルの値を取得したい

◆現状
$sql="SELECT * FROM (`r1`) JOIN `t1` JOIN `u1` ON `r1`.`tid` = `t1`.`tid` And`r1`.`uid` = `u1`.`uid`";

◆疑問
3つのテーブルから条件一致するデータを全て取得しているのですが、
「r1テーブル」「u1テーブル」に同じカラム名(z2)があるためか、
取得結果のz2内容が、「u1テーブル」の「z2カラム」値となっています(多分…)。
この時、「r1テーブル」の「z2カラム」を取得するには、どうすれば良いでしょうか?
(「r1テーブル」の「z2カラム」だけを単独で取得したいわけではなく、「SELECT * 」結果した際の「z2カラム」の値を「r1テーブル」のものにしたいです)

A 回答 (1件)

「JOIN `u1`」の部分を「(SELECT `uid` FROM `u1`) `u1`」という具合に「z2カラム」を除いた列を取得するSQLにすれば可能ですね。


SQLを書く代わりに「z2カラム」を除いた列を取得できるu1テーブルのビューを作っておいてもよいでしょう。
    • good
    • 0
この回答へのお礼

回答ありがとうございました。
大変参考になりましたー

お礼日時:2012/07/30 22:17

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す