我有一个MySQL数据库,其中包含多个表格,希望将这些表格联接成一个视图,以免我需要构建3或4个SQL语句,甚至是一个大的JOIN语句来获取相同的信息。
这是我要寻找的最终视图。
我已经连续3天在左连接、右连接、内连接和外连接方面苦苦思索,但似乎一直无法让它正常工作。
基本上,我想要的是将track_artist表中的艺术家和符号从各自的表中获取,并将它们合并到一个列中。然后,将标题和合并列连接起来以得到这个视图。
我已经做到了这一步,但是当我尝试将其与曲目列表表连接时,我的服务器似乎崩溃了,这让我非常痛苦。没有mysql错误,所以我猜我使用了错误的连接,或者这根本不可能。(虽然我看不出为什么不可能)
曲目列表表每周都会舒适地增长1000条记录,并且当前已有大约75000条记录。
对我来说,这应该可以工作的SQL,但实际上却不行。
以下是我想要联接的所有表格
track_title
+----+------------------+
| ID | TITLE |
+----+------------------+
| 1 | Title Here |
| 2 | Another Title |
| 3 | Some Other Title |
+----+------------------+
track_artist
+----+----------------+-----------+-----------+
| ID | TRACK_TITLE_ID | ARTIST_ID | SYMBOL_ID |
+----+----------------+-----------+-----------+
| 1 | 1 | 1 | 2 |
| 2 | 1 | 2 | 1 |
| 3 | 3 | 1 | 1 |
+----+----------------+-----------+-----------+
artist
+----+-------------+
| ID | ARTIST |
+----+-------------+
| 1 | Linkin Park |
| 2 | Metallica |
+----+-------------+
symbol
+----+--------+
| ID | SYMBOL |
+----+--------+
| 1 | |
| 2 | Feat. |
+----+--------+
tracklisting
+----+----------+----------+---------------+---------+
| ID | TRACK NO | TITLE_ID | VERSION | DISC NO |
+----+----------+----------+---------------+---------+
| 1 | 1 | 1 | | 1 |
| 2 | 1 | 2 | Album Version | 1 |
| 3 | 1 | 3 | Live Version | 1 |
+----+----------+----------+---------------+---------+
这是我要寻找的最终视图。
+----+----------+------------------+---------------+-----------------------------+---------+
| ID | TRACK NO | TITLE | VERSION | ARTIST | DISC NO |
+----+----------+------------------+---------------+-----------------------------+---------+
| 1 | 1 | Title Here | | Linkin Park Feat. Metallica | 1 |
| 2 | 1 | Another Title | Album Version | | 1 |
| 3 | 1 | Some Other Title | Live Version | Linkin Park | 1 |
+----+----------+------------------+---------------+-----------------------------+---------+
我已经连续3天在左连接、右连接、内连接和外连接方面苦苦思索,但似乎一直无法让它正常工作。
基本上,我想要的是将track_artist表中的艺术家和符号从各自的表中获取,并将它们合并到一个列中。然后,将标题和合并列连接起来以得到这个视图。
full_artist_view
+----------+------------------+-----------------------------+
| TITLE_ID | TITLE | FULL_ARTIST |
+----------+------------------+-----------------------------+
| 1 | Title Here | Linkin Park Feat. Metallica |
| 2 | Another Title | |
| 3 | Some Other Title | Linkin Park |
+----------+------------------+-----------------------------+
我已经做到了这一步,但是当我尝试将其与曲目列表表连接时,我的服务器似乎崩溃了,这让我非常痛苦。没有mysql错误,所以我猜我使用了错误的连接,或者这根本不可能。(虽然我看不出为什么不可能)
曲目列表表每周都会舒适地增长1000条记录,并且当前已有大约75000条记录。
对我来说,这应该可以工作的SQL,但实际上却不行。
FROM full_artist_view LEFT JOIN tracklisting ON
full_artist_view.TITLE_ID = tracklisting.TITLE_ID
full_artist_view
的代码吗? - Taryn