MySQL8.0にするなら、WITH句で!共通テーブル式を使いましょう!
MySQL8.0を使いたい理由は、CTEに対応したからなんです!!
そもそも、MySQL 8.0を使いたかった理由って、共通テーブル式が実装されてからなんです! 私自身は、 IBM DB2でかなりお世話になりました。やがて年は過ぎ、MySQLしか触らなくなったのですが、WITH句ってどんなRDBMSにも付いているものだとばかり思っていたのですが、無い。。MySQLは無かったんですよね(汗) おかげさまで、サブクエリーのサブクエリをごりごり書く生活に慣れてしまいました。
今回は、このCTEを利用して、どれだけ、SQLが綺麗になるのかを見せたいと思います!
テーブル
今回、CTEとして利用するテーブル定義です
CREATE TABLE `loglog` ( `id` bigint(20) unsigned NOT NULL DEFAULT '0', `created_at` datetime NOT NULL, `user_id` bigint(20) NOT NULL, `action` varchar(20) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8続きを読む