如果另一个表中存在多个当前值,请选择行

时间:2015-03-18 10:58:00

标签: mysql

我正在电影数据库上执行搜索功能,我想提供搜索两种类型的电影的选项(即:犯罪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

1 个答案:

答案 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
)