我首先列出了 1958 年至 1980 年期间按日期排列的前 100 首歌曲的表格。对于每个日期,都有 100 条记录。显然,随着歌曲每周位置的变化,许多内容都会重复。此外,艺术家将被多次复制(想想猫王)。表中约有 116,000 条记录。
该表有以下字段
uniq, date, artist, title, position
为了消除重复项(据我所知标准化),我修改了表格,现在看起来像这样
uniq, date, artistcode, titlecode, position
并有两个新的表艺术家和标题。 艺术家长得像这样
artist, artistcode
标题看起来像这样
title, titlecode
为了朝着正确的方向开始,我只想重新组装(连接)这些表,以便我有一个view看起来像原来的表,即
并拥有 116000 条记录。在阅读了几本书并使用了几个教程之后,我得出的结论是,我对标准化应该做什么有误解,或者我只是走错了方向。
用于创建的 SQL 语法view将不胜感激。
要返回包含多个表的原始输出,您可以使用以下语法JOINs https://dev.mysql.com/doc/refman/5.7/en/join.html
SELECT s.uniq, s.date, a.artist, t.title, s.position FROM songs AS s JOIN artists AS a ON a.artistcode = s.artistcode JOIN titles AS t ON t.titlecode = s.titlecode
如果您尝试消除重复的歌曲条目,可以将其添加到查询中:
GROUP BY t.title