質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
SQL

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

解決済

[sql]2つのselect文を横に結合したい

coinbura
coinbura

総合スコア105

SQL

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

3回答

0評価

0クリップ

48773閲覧

投稿2018/08/19 11:09

編集2018/08/19 11:18

MySQLのselect文を使って以下のような出力を得る「select文出力A」と「select文出力B」があります。

select文出力A
+-------+------------+
| EmpID | FullName |
+-------+------------+
| A001 | 太郎 |
| A002 | 花子 |
| A003 | 五郎 |
| A004 | 三郎 |
+-------+------------+

select文出力B
+-------+-----+
| EmpID | Age |
+-------+-----+
| A001 | 31 |
| A002 | 35 |
| A003 | 56 |
| A004 | 22 |
+-------+-----+

この2つのSQL文を1つの出力にしたく、以下のようにしました。

(select文出力A) union (select文出力B)

(↓「select文出力A」と「select文出力B」の内容も含めた全文)

(SELECT `EmpID`,meta_value as "FullName" FROM `wp_usermeta` where `meta_key` = "FullName") union (SELECT `EmpID`,meta_value as "Age" FROM `wp_usermeta` where `meta_key` = "Age")

すると、結果は以下になりました。

+-------+------------+
| EmpID | FullName |
+-------+------------+
| A001 | 太郎 |
| A002 | 花子 |
| A003 | 五郎 |
| A004 | 三郎 |
| A001 | 31 |
| A002 | 35 |
| A003 | 56 |
| A004 | 22 |
+-------+------------+

これを以下のように、横に結合する為にはどのようなSQLを書けば良いのでしょうか?
+-------+------------+------+
| EmpID | FullName | Age |
+-------+------------+------+
| A001 | 太郎 | 31 |
| A002 | 花子 | 35 |
| A003 | 五郎 | 56 |
| A004 | 三郎 | 22 |
+-------+------------+------+

ちなみにテーブル「wp_usermeta」はこんな感じになっています。(WordPressのテーブル)
+-------+------------+---------------+
| EmpID | meta_key | meta_value |
+-------+------------+---------------+
| A001 | FullName | 太郎 |
| A001 | Age | 31 |
| A002 | FullName | 花子 |
| A002 | Age | 35 |

以下略

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

SurferOnWww

2018/08/19 11:16

DB が何か(SQL Server? Oracle? MySQL? その他?)を書きましょう。JOIN 句は使えませんか?
coinbura

2018/08/19 11:23

すみません。MySQLです。join句は、散々悪戦苦闘した末、select文2つを使って、かつ、元が同じテーブルだと使えないという結論に至ったのですが、間違いでしたでしょうか(^^A

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

SQL

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