1. Уважаемые участники и гости, 19 октября codeby будет работать в режиме "Только чтение". Регистрация новых участников будет закрыта. 20 октября портал продолжит работу в прежнем режиме.

Выбрать из таблицы по 2м параметрам

Тема в разделе "SQL", создана пользователем alexdrob, 29 май 2010.

  1. alexdrob

    alexdrob Гость

    Репутация:
    0
    Здравствуйте! Помогите пожалуйста составить запрос.

    Есть таблица ann как бы объявление 1 запись 1 объявление
    Код:
    PHP:
    id city_id price | ..................
    есть city
    Код:
    PHP:
    id name
    есть fields - различные дополнительные поля то есть содержит записи типа Год? Расстояние? и т.д.
    Код:
    PHP:
    id name
    и есть ann_fields связь между ann и fields + значение для fields, то есть для объявления с ID 1 будет несколько полой в таблице с ID объявления id вопроса и ответом на него
    Код:
    PHP:
    id ann_id fields_id value
    нужно организовать поиск по полям, делаю так

    Код:
    PHP:
    select from ann
    left join city on ann
    .id=city.id
    where ann
    .city_id=and price 1000
    как в этот код добавить выборку с таблицы ann_fields

    Ну или хотя бы подскажите как просто имея таблицу
    PHP:
    id ann_id fields_id value
    |     1     |  1         100
    |     1     |    2        200
    |     6     |    1        677
    выбрать с неё записи где
    fields_id = 1 и value < 200
    и
    fields_id = 2 и value > 100

    запрос типа
    PHP:
    select from ann_fields where (fields_id and value 200) or (fields_id and value 100group by ann_id
    вернёт ответ в случае любого совпадения а мне нужно чтобы всё совпало а если писать вместо or - and то получается что fields_id = 1 ..... and fields_id = 2 и ответа нет
     
  2. alexdrob

    alexdrob Гость

    Репутация:
    0
    пока пришло в голосу что то типа
    select ann.id,
    (select `value` from fields_ann where fields_ann.fields_id=1 and fields_ann.ann_id=ann.id) as f1,
    (select `value` from fields_ann where fields_ann.fields_id=2 and fields_ann.ann_id=ann.id) as f2,
    from ann where f1>200 and f2 > 100 ;
     
Загрузка...

Поделиться этой страницей