我正在电影数据库上执行搜索功能,我想提供搜索两种类型的电影的选项(即:犯罪ID:6和冒险ID:7)
如果title_genre值中存在genre_id 6和7,我基本上想从标题中获取一行。显然,下面的查询不起作用(我理解为什么它不是,但我不知道如何修复它。)
请帮忙吗?
SELECT * FROM (`title`, `title_genre`)
WHERE `title`.`active` = 1
AND `title`.`media_id` = title_genre.media_id
AND title_genre.genre_id = 6 AND title_genre.genre_id = 7
答案 0 :(得分:2)
您可以使用exists
检查genre_id = 7
中是否存在其他title_genre
,并使用explicit join
使其更好
select
t.*,
tg.*
from title t
join title_genre tg on tg.media_id = t.media_id
where
tg.genre_id = 6
and exists(
select 1 from title_genre tg1
where tg1.media_id = t.media_id
and tg1.genre_id = 7
)