我正在使用 postgreSQL 9.3。
我想说我的问题有点主观,但我没有找到任何相关的问题或文章......
我有以下三个表:
艺术家:
+--------+----------+
|artistId| name |
+--------+----------+
| 1 | James |
| 2 | Jack |
| 3 | Henry |
| 4 | Tom |
+--------+----------+
流派:
+---------+-----------+
| genreId | name |
+---------+-----------+
| 1 | rock |
| 2 | dub |
+---------+-----------+
和连接表艺术家流派:
+--------+---------+
|artistId| genreId |
+--------+---------+
| 1 | 1 |
| 2 | 2 |
| 3 | 1 |
| 4 | 2 |
+--------+---------+
我想按流派名称获取所有艺术家。目前我这样做:
SELECT a.*
FROM artistsGenres aG
INNER JOIN artists a ON a.artistId = aG.artistId
WHERE aG.genreId = (SELECT genreId FROM genres WHERE name = 'dub');
我想知道是否有更有效的方法来做到这一点?