我模仿一个小型的数据库更容易解释最后插入的项目:选择不仅关系到另一个注册表
CREATE TABLE bands (
id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
name VARCHAR(120) NULL,
PRIMARY KEY(id)
)
TYPE=InnoDB;
CREATE TABLE albums (
id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
band_id INTEGER UNSIGNED NOT NULL,
album_name VARCHAR(120) NULL,
rating INTEGER UNSIGNED NULL,
insertion_date TIMESTAMP NULL,
PRIMARY KEY(id),
INDEX albums_FKIndex1(band_id),
FOREIGN KEY(band_id)
REFERENCES bands(id)
ON DELETE NO ACTION
ON UPDATE NO ACTION
)
TYPE=InnoDB;
现在,假装我们已经有一些乐队和他们各自的表中登记的多张唱片,我想仅选择每个已注册乐队中最后插入的专辑。
PS:我必须使用“album.insertion_date”字段来确定哪个相册是最后插入的。
也许你可以粘贴到某处(https://gist.github.com/)插入的小转储?我需要执行查询测试。 – Anatolij 2011-04-29 12:57:55
您将问题标记为Postgresql,但您的SQL清楚地显示了MySQL。你在用什么? – 2011-04-29 14:04:03
我正在使用postgres。看起来我以错误的格式导出了SQL – marcio 2011-04-29 14:25:50