それぞれが多数の曲を歌った歌手のテーブルなど、1 対多の関係があるとします。 DROP TABLE の歌手。CREATE TABLE 歌手 ( id bigint not null auto_increment, name varchar(255) not null, PRIMARY KEY (id) );
INSERT INTO singers (name) VALUES ('Joe'), ('Bob');
DROP TABLE songs;
CREATE TABLE songs (
id bigint not null auto_increment,
singer_id bigint not null,
name varchar(255) not null,
PRIMARY KEY (id)
);
INSERT INTO songs (singer_id, name) VALUES (1, "foo"), (2, "bar"), (1, "baz"), (2, "quux");
曲の行が時系列で正しく書き出されていると仮定すると、たとえば、Joe がクエリで歌った最新の曲を見つけることができます。
SELECT * FROM songs WHERE singer_id = 1 ORDER BY id DESC LIMIT 1;
ここで、各歌手の行と、その歌手が歌った最新の曲を含む MySQL ビューを作成したいとします。つまり、次のようなテーブルです。
singer_id singer_name song_id song_name
1 Joe 3 baz
2 Bob 4 quux
これには、上記の ORDER BY / LIMIT 句を何らかの方法でビューの構築/結合ロジックに統合する必要があるようですが、その方法がわかりません。これは可能ですか?