質問編集履歴

2 試した点を追加いたしました

space_sss

space_sss score 72

2018/01/21 21:56  投稿

SQLのJOINに関しての質問です。
テーブルの結合に関しての質問です
メインテーブル
|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
SELECT * FROM メインテーブル LEFT JOIN 動物 ON 動物.id = メインテーブル.項目1 OR 動物.id = メインテーブル.項目2;
```
といった形で試したのですが二行になってしまいかといって
```SQL
SELECT 名前,動物.項目, FROM メインテーブル LEFT JOIN 動物 ON 動物.id = メインテーブル.項目1 AND 動物.id = メインテーブル.項目2;
```
ですとNULLが返って来てしまい困っています。
OR文で2行を取得しSELECTの指定でどうにかするのかなと思い色々試しているのですがうまくいきません。
初歩的なことかもしれませんがどうぞ宜しくお願いいたします。
  • PHP

    25602 questions

    PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

  • MySQL

    7446 questions

    MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

  • JOIN

    29 questions

    これはSQL文のJOINに関するタグです。リレーショナルデータベースシステムの二つ以上のテーブルを結合する際に、この構文が利用されます。

  • SQL

    3240 questions

    SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

1 修正

space_sss

space_sss score 72

2018/01/21 21:48  投稿

SQLのJOINに関しての質問です。
テーブルの結合に関しての質問です
メインテーブル
|id|名前|項目|項目|
|id|名前|項目1|項目2|
|:--|:--:|--:|--:|
|01|鈴木|1|3|
|02|山田|2|1|
|03|田中|1|2|
|03|佐藤|3|2|
動物
|id|項目|
|:--|--:|
|01|ウサギ|
|02|カメ|
|03|イヌ|
こういった2つのテーブルがあったとします。
これのテーブルを結合し
|id|名前|項目|項目|
|id|名前|項目1|項目2|
|:--|:--:|--:|--:|
|01|鈴木|ウサギ|イヌ|
|02|山田|カメ|ウサギ|
|03|田中|ウサギ|カメ|
|04|佐藤|イヌ|カメ|
こういった形にしたいのですが
その際のSQL文はどのようになるのでしょうか?
できればメインテーブルのidは特に表示には使用しないため*にも指定し
最終的の結果表示は
|名前|項目|項目|
|:--:|--:|--:|
|鈴木|ウサギ|イヌ|
|山田|カメ|ウサギ|
|田中|ウサギ|カメ|
|佐藤|イヌ|カメ|
といったものを表示したいのですがこれは可能なのでしょうか?
宜しくお願いいたします。
  • PHP

    25602 questions

    PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

  • MySQL

    7446 questions

    MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

  • JOIN

    29 questions

    これはSQL文のJOINに関するタグです。リレーショナルデータベースシステムの二つ以上のテーブルを結合する際に、この構文が利用されます。

  • SQL

    3240 questions

    SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る