|
|
|
| У меня есть таблицы.
film
id | name | info ....
types
id | name
film_filter
id | film_id | type_id
Если 1 фильму соответствует 2 жанра то таблица film_filter принимает такой вид (например)
id | film_id | type_id
1 | 2 | 4
1 | 2 |5
Как мне сделать поиск? если формирую такой запрос:
SELECT name from film as a, film_filter as b where a.id=b.film_id AND (type_id=1 OR type_id=2 ... )
(type_id=1 OR type_id=2 ... ) - формируется в связи с тем как пользователь выбрал в форме поиска по каким жанрам он хочет найти фильм. Так вот если выбра жанры 5 и 4 одновременно то запрос вернет мне данный фильм 2 раза. Как это исправить? подскажите пожалуйста. | |
|
|
|
|
|
|
|
для: Равечка
(19.10.2006 в 02:06)
| | Вы не напутали тут?
>Если 1 фильму соответствует 2 жанра то таблица film_filter принимает такой вид (например)
>id | film_id | type_id
>1 | 2 | 4
>1 | 2 |5
|
по идее должно быть
Чтобы убрать повторы, нужно указать distinct в списке SELECT
SELECT DISTINCT name from film as a, film_filter as b where a.id=b.film_id AND (type_id=1 OR type_id=2 ... )
|
| |
|
|
|
|
|
|
|
для: Trianon
(19.10.2006 в 10:16)
| | Большое спасибо. решила проблему. | |
|
|
|