テーブルが2つあり、
主キー member_id
になります。
[tableA]
member_id|name|age|
|:--|:--:|:|
|1|yamada|20||
|2|tanaka|30||
[tableB]
| member_id | size |
|---|---|
| 1 | large |
| 2 | small |
この2つのテーブルの
name,age,size
値をまとめて取得するSQLの記述は、どのように書けば良いでしょうか?
回答2件
あなたの回答
tips
プレビュー
MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。
SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。
PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。
JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。
HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。
0グッド
0クリップ
投稿2017/06/14 07:58
編集2017/06/15 04:50テーブルが2つあり、
主キー member_id
member_id|name|age|
|:--|:--:|:|
|1|yamada|20||
|2|tanaka|30||
| member_id | size |
|---|---|
| 1 | large |
| 2 | small |
この2つのテーブルの
name,age,size
値をまとめて取得するSQLの記述は、どのように書けば良いでしょうか?
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
2017/06/14 07:59
2017/06/14 08:01
2017/06/14 13:42
回答2件
0
ベストアンサー
「tableA、tableBを関連づける情報」は何かありませんか(主キーもわかると望ましい)?
これが無いと多分だれも回答できない。
一つの回答としてはテーブルを結合して取得するSQLになると思いますが、それにはtableA、tableBを関連付ける項目が必要です。
例えば
tableA
|member_id|name|age|size_id|
|:--|:--:|--:|
|1|yamada|20|100|
|2|suzuki|30|100|
|3|sato|35|200|
tableB
| size_id | size |
|---|---|
| 100 | large |
| 200 | small |
なら
SELECT a.name,a.age,b.size FROM tableA a INNER JOIN tableB b ON a.size_id=b.size_id;
(inner joinで良いかどうかは要件によりますが)
そもそもですが、"tableA、tableBを関連づける情報"(この例だとsize_id)が無い場合、可能な結合は交差結合(cross join)のみになります(技術的というより論理的な話)。
この場合以下のような結果になります(多分ほしいのはこれじゃないでしょう)。
| name | age | size |
|---|---|---|
| yamada | 20 | large |
| suzuki | 30 | large |
| sato | 35 | large |
| yamada | 20 | small |
| suzuki | 30 | small |
| sato | 35 | small |
投稿2017/06/15 01:46
総合スコア276
0
tableAとtableBのmember_idがそれぞれユニークで、しかも1対1で常に併存する
(若しくはある程度高い確率で出現する)として、member_idをキーに結合するなら
この正規化は無駄なので1テーブルで管理したほうが良いと思います。
ちなみにageのような時間に依存するデータは正確な集計ができなくなるので
あまりお勧めできません
投稿2017/06/15 05:13
総合スコア118268
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。