SQL初心者にお教えください。
Django開発でSQLiteを使用しているのですが、以下のようにテーブルからデータを取得したいです。
サブクエリなどで取得できるのかなと思うのですが、思いつかずいい案があればお教えください。
テーブル
Personテーブル
id | name | like_id1 | like_id2 | like_id3 |
---|---|---|---|---|
1 | Taro | 1 | 2 | 5 |
likeテーブル
like_id | like_name |
---|---|
1 | サッカー |
2 | 野球 |
3 | バスケ |
4 | バレー |
5 | テニス |
欲しい結果
Personテーブルのlike_id1,like_id2,like_id3とlikeテーブルのlike_idをそれぞれ紐づけて取得したい。
欲しい結果
id | name | like_id1 | like_id2 | like_id3 | like_name1 | like_name2 | like_name3 |
---|---|---|---|---|---|---|---|
1 | Taro | 1 | 2 | 5 | サッカー | 野球 | テニス |
テーブル設計がおかしくて、正規化すべきではありませんかね?
like_idが4つ以上必要になると破綻します。
データーベースの正規化をきちんと学んでください。https://products.sint.co.jp/topsic/blog/database-normalization