テーブルの結合に関しての質問です
メインテーブル
id | 名前 | 項目1 | 項目2 |
---|---|---|---|
01 | 鈴木 | 1 | 3 |
02 | 山田 | 2 | 1 |
03 | 田中 | 1 | 2 |
03 | 佐藤 | 3 | 2 |
動物
id | 項目 |
---|---|
01 | ウサギ |
02 | カメ |
03 | イヌ |
こういった2つのテーブルがあったとします。
これのテーブルを結合し
id | 名前 | 項目1 | 項目2 |
---|---|---|---|
01 | 鈴木 | ウサギ | イヌ |
02 | 山田 | カメ | ウサギ |
03 | 田中 | ウサギ | カメ |
04 | 佐藤 | イヌ | カメ |
こういった形にしたいのですが
その際のSQL文はどのようになるのでしょうか?
できればメインテーブルのidは特に表示には使用しないため*にも指定し
最終的の結果表示は
名前 | 項目 | 項目 |
---|---|---|
鈴木 | ウサギ | イヌ |
山田 | カメ | ウサギ |
田中 | ウサギ | カメ |
佐藤 | イヌ | カメ |
といったものを表示したいのですがこれは可能なのでしょうか?
宜しくお願いいたします。
追記文
試したものに関しての記載がないと指摘をいただいたのでその点を修正いたします。
SQL
1SELECT * FROM メインテーブル LEFT JOIN 動物 ON 動物.id = メインテーブル.項目1 OR 動物.id = メインテーブル.項目2;
といった形で試したのですが二行になってしまいかといって
SQL
1SELECT 名前,動物.項目, FROM メインテーブル LEFT JOIN 動物 ON 動物.id = メインテーブル.項目1 AND 動物.id = メインテーブル.項目2;
ですとNULLが返って来てしまい困っています。
OR文で2行を取得しSELECTの指定でどうにかするのかなと思い色々試しているのですがうまくいきません。
初歩的なことかもしれませんがどうぞ宜しくお願いいたします。
回答2件
あなたの回答
tips
プレビュー