Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
VicPitman
Зарегистрирован: 25.04.2006 Сообщения: 2
|
Добавлено: Вт Апр 25 2006 07:56 Заголовок сообщения: Можно ли сложный запрос преобразовать в простой. |
|
|
Есть три таблицы
фотографии - имя файла и т.п. ключ pId
признаки - список различных признаков ключ keyId
связь - у какой фотографии какие признаки, с таблицей фото связь через поле onPhotoId, с таблицей признаков - через поле onKeyId
Фотография может иметь неопределенное количество признаков.
Для выборки фотографий имеющих (либо неимеющих) какие-то определенные признаки написан запрос
SELECT * FROM `photo`
WHERE
pId IN (SELECT pId FROM `photo`, `cross` WHERE pId=onPhotoId AND onKeyId=47)
AND
pId IN (SELECT pId FROM `photo`, `cross` WHERE pId=onPhotoId AND onKeyId=58)
AND
pId IN (SELECT pId FROM `photo`, `cross` WHERE pId=onPhotoId AND onKeyId=64)
Числа - идентификаторы конкретных признаков
Вопрос: можно ли этот запрос преобразовать в простой. |
|
Вернуться к началу |
|
 |
Dimasm
Зарегистрирован: 25.04.2005 Сообщения: 454
|
Добавлено: Пт Апр 28 2006 22:04 Заголовок сообщения: |
|
|
а почему нельзя сделать так
Код: | photo
-----
photo_id
photo_data
* * *
priznak
-------
pr_id
pr_name
* * *
connect
-------
photo_id
pr_id |
и выбирать
Код: | SELECT * FROM photo,priznak,connect
WHERE photo.photo_id = connect.photo_id
AND priznak.pr_id = connect.pr_id
AND priznak.name = 'лучшие фото' |
_________________ С уважением Dimasm |
|
Вернуться к началу |
|
 |
|