次のことを達成する方法を理解しようとして、私はいくつかの問題を抱えています。
私のテーブル:
id: schema: updated_date
1 sometext 2012-01-01
1 sometext 2012-02-02
1 sometext 2011-03-03
1 sometext 2010-04-04
2 sometext 2012-04-05
2 sometext 2012-06-07
2 sometext 2011-04-01
2 sometext 2010-09-09
今、私が達成したいのは、テーブルからすべてを選択し、id に基づいてすべての個別のレコードを取得することです。これにより、2 つの行が得られます。トリッキーな部分は、updated_date に基づいて結果を取得することです。最新のものが必要です。したがって、上記の表に基づいて、次の 2 つのレコードを抽出できるようにしたいと考えています。
1 sometext 2012-02-02
2 sometext 2012-06-07
これをMySQLにする方法を教えてください。私はPHP PDOを使用しています。
テーブル構造:
CREATE TABLE IF NOT EXISTS `mail_schema` (
`id` int(11) NOT NULL,
`name` varchar(50) NOT NULL,
`message` text NOT NULL,
`updated_by` int(11) NOT NULL,
`last_updated` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
テーブルデータ:
INSERT INTO `mail_schema` (`id`, `name`, `message`, `updated_by`, `last_updated`) VALUES
(1, 'nummer et', '<p>\n med tekst</p>\n', 3, '2012-06-25 18:56:21'),
(1, 'nummer 2', '<p>\n med tekst</p>\n', 3, '2012-06-25 18:56:46'),
(1, 'test', '<p>\n test</p>\n', 3, '2012-06-25 18:57:38'),
(1, 'test igen', '<p>\n asd</p>\n', 3, '2012-06-25 18:58:28'),
(2, 'test 5', '<p>\n asd</p>\n', 3, '2012-06-25 18:59:11'),
(3, 'test 6', '<p>\n med id 3</p>\n', 3, '2012-06-25 18:59:37'),
(2, 'test 5', '<p>\n asd version 2</p>\n', 3, '2012-06-25 19:00:46');