1
我有一个很大的电影数据库,我想按年份和类型搜索电影。MySQL左连接1结果为非常大的数据库
我有3个表来处理:
1. movies (Key TITLE_ID)
2. movie2genre (TITLE_ID + GENRE_ID)
3. genre (Key GENRE_ID)
电影:
+----------+---------------+------+
| TITLE_ID | TITLE | YEAR |
+----------+---------------+------+
| 10001 | Matrix | 1999 |
| 10002 | Walk on Water | 2004 |
+----------+---------------+------+
movie2genre:
+----------+----------+
| TITLE_ID | GENRE_ID |
+----------+----------+
| 10001 | 1 |
| 10001 | 2 |
| 10002 | 2 |
| 10002 | 4 |
| 10001 | 3 |
+----------+----------+
流派:
+----------+-----------+
| GENRE_ID | GENRE_TXT |
+----------+-----------+
| 1 | Action |
| 2 | Adventure |
| 3 | Thriller |
| 4 | Fantasy |
+----------+-----------+
用户发送1999年的类型冒险或惊悚的请求。
如何在1个优化查询中查找所有电影?
结果应该是:
+----------+--------+------+-----------+
| TITLE_ID | TITLE | YEAR | GENRE_TXT |
+----------+--------+------+-----------+
| 10001 | Matrix | 1999 | Action |
+----------+--------+------+-----------+
我不在乎哪个流派被选中,只是这部电影为体裁的1用户要求。
我会删除LIMIT ... OP需要所有电影...只是他的示例数据只会从显示内容返回1。 (但upvoted准确查询,否则) – DRapp
@DjRapp感谢您指出了这一点,为upvote。 –
谢谢!工作很好。我只是添加“GROUP BY m.TITLE_ID”以获得1个结果的电影。 – TheWiz