- - PR -
同一名に
| 投稿者 | 投稿内容 | ||||
|---|---|---|---|---|---|
|
投稿日時: 2005-03-27 19:52
select code
name as name_jpn, name as name_eng from m_code, t_name where name = (select〜) ← name as name_jpnとして表示したい or name = (select〜) ← name as name_engとして表示したい nameにそれぞれ違うものを代入して表示したいんですけど 同じnameに入れていてうまく表示できないのですが、 どうしたら良いのでしょうか。 | ||||
|
投稿日時: 2005-03-27 20:07
テーブル設計時の話になりますが
異なる内容のデータを格納するのであれば、カラム自体を 分けたほうが自然ですし、SQLも単純になると思うのですが いかがでしょうか。 | ||||
|
投稿日時: 2005-03-27 20:13
全くVacant-Eyesさんの言うとおりでだと思います。
しかし、このままの状態で何とかしなければないないのです。。 asでnameに別名をつけようとしてもうまくいかなくて 困っています。 | ||||
|
投稿日時: 2005-03-27 20:15
こんな感じでしょうか?
select code, tn1.name as name_jpn, tn2.name as name_eng from m_code, t_name tn1, t_name tn2 where tn1.name = (select〜) or tn2.name = (select〜) | ||||
|
投稿日時: 2005-03-27 20:21
温州蜜柑さんへ
from DB名 の箇所にt_name tn1と指定できるのですか。 私が未熟なのかもしれませんが。 | ||||
|
投稿日時: 2005-03-27 20:43
できますが... m_codeテーブルとt_nameテーブルのレイアウトと サンプルデータと期待している結果を投稿していただけると、 回答しやすいです... | ||||
|
投稿日時: 2005-03-27 21:23
温州蜜柑さんへ
期待している結果は code id name_jpn cd name_eng -------------------------------------- aaa 10 木村 1 kimura bbb 20 佐藤 0 satoh こんな感じです。 m_codeテーブルには name id name ------------------ jpn 10 木村 jpn 20 佐藤 eng 1 kimura eng 0 satoh t_nameには code id cd --------------------- aaa 10 1 bbb 20 0 簡単なデータですけど、こんな感じです。 m_codeのnameがjpnで、かつt_nameのidとm_codeのidが一致してたら木村をとってくる m_codeのnameがengで、かつt_nameのcdとm_codeのidが一致してたらkimuraをとってくる | ||||
|
投稿日時: 2005-03-28 01:05
昨夜のSQLはまったくダメでした。
これでできそうです。 SELECT t_name.code as code, m_code.id , m_code.name as name_jpn , m_code_1.id as cd, m_code_1.name as name_eng FROM (t_name INNER JOIN m_code ON t_name.id = m_code.id) INNER JOIN m_code AS m_code_1 ON t_name.cd = m_code_1.id; [ メッセージ編集済み 編集者: 温州蜜柑 編集日時 2005-03-28 14:57 ] [ メッセージ編集済み 編集者: 温州蜜柑 編集日時 2005-03-28 15:07 ] | ||||
