第一个查询是获取vID
电影的Ironman
。如果您愿意,可以使用 vID。
SELECT `vID` FROM `videos` WHERE `vName` = 'Ironman';
编辑:
作为 Second 你需要它的genreID:
SELECT `gcGenreID`
FROM `genre_connections`
INNER JOIN `videos`
ON `videos`.`vID` = `genre_connections`.`gcVideoID`
WHERE `videos`.`vName` = 'Ironman';
让我们将其命名为别名并将其temp
加入到请求该类型视频的查询中。
SELECT `vID`,`vName`,`vCover`
FROM `videos`
INNER JOIN `genre_connections`
ON `videos`.`vID` = `genre_connections`.`gcVideoID`
INNER JOIN (SELECT `gcGenreID` FROM `genre_connections` INNER JOIN `videos` ON `videos`.`vID` = `genre_connections`.`gcVideoID` WHERE `videos`.`vName` = 'Ironman') `temp`
ON `temp`.`gcGenreID` = `genre_connections`.`gcGenreID`;
如果您需要与此名称相关的电影,您可以使用:
SELECT `vID`,`vName`,`vCover`
FROM `videos`
WHERE `vName` LIKE '%Ironman%';
最后你只需要联合它们并添加一个限制:
(SELECT `vID`,`vName`,`vCover`
FROM `videos`
WHERE `vName` LIKE '%Ironman%')
UNION
(SELECT `vID`,`vName`,`vCover`
FROM `videos`
INNER JOIN `genre_connections`
ON `videos`.`vID` = `genre_connections`.`gcVideoID`
INNER JOIN (SELECT `gcGenreID` FROM `genre_connections` INNER JOIN `videos` ON `videos`.`vID` = `genre_connections`.`gcVideoID` WHERE `videos`.`vName` = 'Ironman') `temp`
ON `temp`.`gcGenreID` = `genre_connections`.`gcGenreID`)
LIMIT 6;
我已经对其进行了测试并正确运行。