gpt4 book ai didi

mysql - LEFT JOINed 表的 SQL 限制

转载 作者:可可西里 更新时间:2023-11-01 07:04:34 24 4
gpt4 key购买 nike

我有以下表格。

  1. 行业(身份证,姓名)
  2. Movie(id, name, industry_id) [行业有很多电影]
  3. Trailer(id, name, movie_id) [电影有很多预告片]

我需要为每个行业找到 6 个最新的预告片。每部电影不需要有预告片,也可以有多个[0-n]。

CREATE TABLE industry(id int, name char(10), PRIMARY KEY (id));

CREATE TABLE movie(id int, name char(10), industry_id int, PRIMARY KEY (id),
FOREIGN KEY (industry_id) REFERENCES industry(id));

CREATE TABLE trailer(id int, name char(10), movie_id int, PRIMARY KEY (id),
FOREIGN KEY (movie_id) REFERENCES movie(id));

INSERT INTO industry VALUES (1, "sandalwood");
INSERT INTO industry VALUES (2, "kollywood");

INSERT INTO movie VALUES (1, "lakshmi", 1);
INSERT INTO movie VALUES (2, "saarathi", 2);

INSERT INTO trailer VALUES (1, "lakshmi1", 1);
INSERT INTO trailer VALUES (2, "lakshmi2", 1);
INSERT INTO trailer VALUES (3, "lakshmi3", 1);
INSERT INTO trailer VALUES (4, "lakshmi4", 1);
INSERT INTO trailer VALUES (5, "lakshmi5", 1);
INSERT INTO trailer VALUES (6, "lakshmi6", 1);

INSERT INTO trailer VALUES (7, "saarathi4", 2);
INSERT INTO trailer VALUES (8, "saarathi5", 2);
INSERT INTO trailer VALUES (9, "saarathi6", 2);

SELECT c.*
FROM industry a
LEFT JOIN movie b
ON a.id = b.industry_id
LEFT JOIN trailer c
ON b.id = c.movie_id
LIMIT 0, 6

| ID | NAME | MOVIE_ID |
----------------------------
| 1 | lakshmi1 | 1 |
| 2 | lakshmi2 | 1 |
| 3 | lakshmi3 | 1 |
| 4 | lakshmi4 | 1 |
| 5 | lakshmi5 | 1 |
| 6 | lakshmi6 | 1 |

我只需要从每部电影中获取一个最近的预告片。但我正在获取每部电影的所有预告片。请建议我获取 SQL 语句。

最佳答案

我不确定这在 MySql 中是否有效,因为我不记得你是否可以在 in 子句中包含子查询,但你可以尝试:

select * from trailer
where id in (select max(id) from trailer group by movie_id)

无论它是否有效,看起来您没有在查询中使用行业表,因此加入它没有多大意义(除非您实际上试图排除没有分配任何行业的电影他们......但根据你的样本,我看起来这不是你的意图)。

如果上面的查询在 MySql 中不起作用,那么试试这个

select  t.* 
from trailer t join
(select max(id) id from trailer group by movie_id) t2 on t1.id = t2.id

关于mysql - LEFT JOINed 表的 SQL 限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14134363/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com