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

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

新規登録して質問してみよう
ただいま回答率
85.38%
参照

参照は、プログラミングにおいて変数や関数といったメモリ空間上での所在を指示するデータのことを指します。その中にはデータ自体は含まれず、他の場所にある情報を間接的に指示するプログラムです。

MySQL

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

SQL

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

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

プログラミング言語

プログラミング言語はパソコン上で実行することができるソースコードを記述する為に扱う言語の総称です。

Q&A

解決済

1回答

647閲覧

MySQL で複数のテーブルから数値を参照する方法について

u-tyan

総合スコア15

参照

参照は、プログラミングにおいて変数や関数といったメモリ空間上での所在を指示するデータのことを指します。その中にはデータ自体は含まれず、他の場所にある情報を間接的に指示するプログラムです。

MySQL

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

SQL

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

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

プログラミング言語

プログラミング言語はパソコン上で実行することができるソースコードを記述する為に扱う言語の総称です。

0グッド

0クリップ

投稿2020/05/26 06:58

MySQL初学者で、複数のテーブルから値を参照し表記する方法が分かりません。

具体的には、
テーブル1:OrderT (注文時間と商品)
|user_ID|Time |Item |
|1 |20110406|PC |
|1 |20110408|Monitor |
|2 |20110505|Gamesoft|
|3 |20110410|Connect |
|4 |20110412|phone |
|4 |20110502|Gamesoft|

テーブル2:LoginT (ログインした日)
|user_ID|Time |
|1 |20110406|
|1 |20110407|
|1 |20110408|
|1 |20110510|
|2 |20110403|
|2 |20110405|
|3 |20110410|
|4 |20110412|
|4 |20110422|
|4 |20110502|
|4 |20110512|
|4 |20110522|

テーブル3:MemberT (有料会員の人=1)
|user_ID|Member|
|1 |0 |
|2 |1 |
|3 |0 |
|4 |1 |

有料会員の人で、4月中に商品を買った回数と、ログインした日数を求めたいのですが
3つ以上になったテーブルで答えを求める方法がわかりません。

わかる方いらっしゃいましたら、回答お願いいたします。

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Orlofsky

2020/05/26 07:22

ここの掲示板は丸投げは禁止です。質問に自分で書いたSQLを追記しては?
Orlofsky

2020/05/26 07:25

SQLで使われるテーブルはCREATE TABLEされている必要があります。 質問のテーブル定義の説明もCREATE TABLEに変更して、 SELECTされるデータもINSERTされている必要がありますから、INSERT文で何件かデータを https://teratail.com/help/question-tips#questionTips3-7 の [コード] に変更してもらえると適切なコメントが付き易いです。
u-tyan

2020/05/26 08:42

アドバイスありがとうございます! 初めてここにこのような質問投げてしまい勝手がわからず質問してしましました。 次からはアドバイス活かせるよう頑張ります!
guest

回答1

0

ベストアンサー

こんな感じでやってみてくだい

  • 元データ作成

SQL

1create table OrderT(oid int primary key auto_increment,uid int,odate date,item varchar(20)); 2insert into OrderT(uid,odate,item) values 3(1,'2011-04-06','PC'), 4(1,'2011-04-08','Monitor'), 5(2,'2011-05-05','Gamesoft'), 6(3,'2011-04-10','Connect'), 7(4,'2011-04-12','phone'), 8(4,'2011-05-02','Gamesoft'); 9 10create table LoginT(lid int primary key auto_increment,uid int,ldate date); 11insert into LoginT(uid,ldate) values 12(1,'2011-04-06'), 13(1,'2011-04-07'), 14(1,'2011-04-08'), 15(1,'2011-05-10'), 16(2,'2011-04-03'), 17(2,'2011-04-05'), 18(3,'2011-04-10'), 19(4,'2011-04-12'), 20(4,'2011-04-22'), 21(4,'2011-05-02'), 22(4,'2011-05-12'), 23(4,'2011-05-22'); 24 25create table MemberT(uid int primary key,member tinyint); 26insert into MemberT values 27(1,0), 28(2,1), 29(3,0), 30(4,1);
  • 抽出

SQL

1select t1.uid, 2(select count(*) from OrderT where uid=t1.uid and odate between '2011-04-01' and '2011-04-30') as ocount, 3(select count(*) from LoginT where uid=t1.uid and ldate between '2011-04-01' and '2011-04-30') as lcound 4 from MemberT as t1 5where member=1

投稿2020/05/26 07:21

yambejp

総合スコア116311

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yambejp

2020/05/26 07:23

初心者ということで ・各テーブルにはなるべく主キーを設定するように ・カラム名にはなるべく予約語を使わない
u-tyan

2020/05/26 08:41

回答ありがとうございます! こういう方法があるのだとまだまだ知らないこと多くて勉強になりました。 質問形式ものすごく見にくい形でしたのにありがとうございました!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.38%

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

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

質問する

関連した質問