2017-10-24 15 views
0

私は、次の表を持っている:ストア子データ

CREATE TABLE titles (
    id INTEGER, 
    title VARCHAR(255) 
    ); 
    INSERT INTO titles (id, title) VALUES (1, "Mars Attacks!"); 
    INSERT INTO titles (id, title) VALUES (2, "Da Vinci Code"); 

    CREATE TABLE GenreName (
    id INTEGER, 
    name VARCHAR(255) 
    ); 

    INSERT INTO GenreName (id, name) VALUES (1, "Action"); 
    INSERT INTO GenreName (id, name) VALUES (2, "Adventure"); 
    INSERT INTO GenreName (id, name) VALUES (3, "Comedy"); 
    INSERT INTO GenreName (id, name) VALUES (4, "Science-Fiction"); 
    INSERT INTO GenreName (id, name) VALUES (5, "Thriller"); 

    CREATE TABLE Genre (
    title INTEGER, 
    genre INTEGER 
    ); 
    INSERT INTO Genre (title, genre) VALUES (1, 1); 
    INSERT INTO Genre (title, genre) VALUES (1, 3); 
    INSERT INTO Genre (title, genre) VALUES (1, 4); 
    INSERT INTO Genre (title, genre) VALUES (2, 1); 
    INSERT INTO Genre (title, genre) VALUES (2, 5); 

私はの再帰的な方法にこだわっている

Id   Title     Genre 
1    Mars Attacks!   Action, Comedy, Science-Fiction 
2    Da Vinci Code   Action, Thriller 

としてデータを取得する方法を探していますデータを選択する。

私はgenere GからDBFiddle

答えて

0

に参加する選択t.id、t.title、GROUP_CONCAT(gn.name)を持っているがt.id上のタイトルトンに参加します= g.title join genrename gn on gn.id = g.genreグループby t.id、t.title

+0

ありがとう!これは本当にトリックです! –

0

使用SQL OUTERが

select titles.id, name, title from titles left outer join genre on titles.id = genre.title left outer join genrename on genre.genre = genrename.id;

関連する問題