H
Holger Dee Assuran
В общем есть у меня такой запросик...
[sql]select public_comm.pub_id from `public_comm`, `publication` where publication.id=public_comm.pub_id and publication.condition!='deleted' and (public_comm.comm_type='mark' and public_comm.comm_id='10') and (public_comm.comm_type='model' and public_comm.comm_id='58') group by public_comm.pub_id[/sql]
Общая идея такова - получить список айдишников статей соответствующих выборке по году, номеру журнала, разделу, рубрике, марке машины, ее модели и модификации причем каждый из параметров выборки - опционален (т.е. может отсутствовать). Запрос строится сценарием на основе имеющихся у него параметров выборки.
Вся сложность в том, что год, номер, раздел и рубрика хранятся в виде ключей-указателей в таблице самой статьи, а связи с маркой, моделью и модификацией в отдельной таблице связей статьи. Причем любая связь статьи определяется двумя полями (не считая указателя самой статьи) - comm_type определяет объект связи (марку или модель и т.д.), а comm_id определяет указатель экземпляра объекта (конкретную марку или модель и т.д.)
Вся фигня в том, что этот запрос возвращает пустой результат, хотя я знаю что вернуть ему есть что... Я пробовал заменить AND между определением марки и модели (они в скобках) на OR - в таком случае запрос возвращает набор статей, но там много ненужных данных - при выборке по марке и модели выбираются статьи связанные с любой моделью марки, а мне нужны статьи только по одной модели.
В общем голову сломал - гугль не панацея, в книжке моей умной такая ситуация не обсуждалась... что делать не ф курсе. ПРОШУ СОВЕТА
[sql]select public_comm.pub_id from `public_comm`, `publication` where publication.id=public_comm.pub_id and publication.condition!='deleted' and (public_comm.comm_type='mark' and public_comm.comm_id='10') and (public_comm.comm_type='model' and public_comm.comm_id='58') group by public_comm.pub_id[/sql]
Общая идея такова - получить список айдишников статей соответствующих выборке по году, номеру журнала, разделу, рубрике, марке машины, ее модели и модификации причем каждый из параметров выборки - опционален (т.е. может отсутствовать). Запрос строится сценарием на основе имеющихся у него параметров выборки.
Вся сложность в том, что год, номер, раздел и рубрика хранятся в виде ключей-указателей в таблице самой статьи, а связи с маркой, моделью и модификацией в отдельной таблице связей статьи. Причем любая связь статьи определяется двумя полями (не считая указателя самой статьи) - comm_type определяет объект связи (марку или модель и т.д.), а comm_id определяет указатель экземпляра объекта (конкретную марку или модель и т.д.)
Вся фигня в том, что этот запрос возвращает пустой результат, хотя я знаю что вернуть ему есть что... Я пробовал заменить AND между определением марки и модели (они в скобках) на OR - в таком случае запрос возвращает набор статей, но там много ненужных данных - при выборке по марке и модели выбираются статьи связанные с любой моделью марки, а мне нужны статьи только по одной модели.
В общем голову сломал - гугль не панацея, в книжке моей умной такая ситуация не обсуждалась... что делать не ф курсе. ПРОШУ СОВЕТА