MySQLバージョン:5.6
テーブル定義
CREATE TABLE test
(
id
int(11) NOT NULL AUTO_INCREMENT,
user_id
int(11) NOT NULL COMMENT '利用者',
input_date
date NOT NULL COMMENT '入力日',
name_sei
varchar(32) NOT NULL COMMENT '名前(姓)',
PRIMARY KEY (id
)
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8;
データ定義
INSERT INTO test
VALUES (1,63,'2015-07-01','相沢'),(2,63,'2015-08-11','相沢'),(3,63,'2015-08-10','相沢'),(4,64,'2015-07-04','大畑'),(5,64,'2015-08-09','大畑'),(6,65,'2015-08-10','菅野'),(7,63,'2015-07-15','相沢');
SELECT結果
+----+---------+------------+----------+
| id | user_id | input_date | name_sei |
+----+---------+------------+----------+
| 1 | 63 | 2015-07-01 | 相沢 |
| 2 | 63 | 2015-08-11 | 相沢 | *
| 3 | 63 | 2015-08-10 | 相沢 |
| 4 | 64 | 2015-07-04 | 大畑 |
| 5 | 64 | 2015-08-09 | 大畑 | *
| 6 | 65 | 2015-08-10 | 菅野 | *
| 7 | 63 | 2015-07-15 | 相沢 |
+----+---------+------------+----------+
上記SELECT結果の*の行、user_idの重複を排除した上でinput_dateの最新を取得する
ビューを作成する必要があり、試行錯誤しております。
以下のクエリでビューを作ってみましたが、idが正常に取得できませんでした。
CREATE VIEW `view_test` AS select `test`.`id` AS `id`, `test`.`user_id` AS `user_id`, max(`test`.`input_date`) AS `input_date`, `test`.`name_sei` AS `name_sei` from `test` group by `test`.`user_id`
SELECT結果
+----+---------+------------+----------+
| id | user_id | input_date | name_sei |
+----+---------+------------+----------+
| 1 | 63 | 2015-08-11 | 相沢 |
| 4 | 64 | 2015-08-09 | 大畑 |
| 6 | 65 | 2015-08-10 | 菅野 |
+----+---------+------------+----------+
*の行を取得できるビューを作成する方法をご教示頂けないでしょうか?
宜しくお願い致します。

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/08/12 02:39
2015/08/14 05:31
2015/08/24 16:45