За последние 24 часа нас посетили 23628 программистов и 1661 робот. Сейчас ищут 903 программиста ...

Запросик

Тема в разделе "MySQL", создана пользователем kowapos, 29 июн 2015.

  1. kowapos

    kowapos Активный пользователь

    С нами с:
    18 янв 2013
    Сообщения:
    120
    Симпатии:
    0
    вот у меня есть запрос. (это поиск по атрибутам)
    Код (PHP):
    1. select id_obj from as_structure as t
    2.  
    3. inner join as_shop_attr_vals as asav1_1 on t.id_obj=asav1_1.id_product and asav1_1.id_attribute=46 and asav1_1.id_attr_value=44
    4.  
    5. inner join as_shop_attr_vals as asav1_2 on t.id_obj=asav1_2.id_product and asav1_2.id_attribute=46 and asav1_2.id_attr_value=45
    attr_value=44 - это англия
    id_attr_value=45 - это германия

    результат - 0 записей.
    хотя в базе есть товары производителя из англии. (из германии нет)

    если искать так
    Код (PHP):
    1. select id_obj from as_structure as t
    2.  
    3. inner join as_shop_attr_vals as asav1_1 on t.id_obj=asav1_1.id_product and asav1_1.id_attribute=46 and asav1_1.id_attr_value=44
    то все ок, покажет товары из англии.

    вообщем, как сделать, что бы результат взаимодополнялся? а то если нет товаров с каким то атрибутом - то выдаст - 0, хотя есть товары и с другими атрибутами.
    за ранее спасибо)

    PHP, JavaScript, SQL и другой код пишите внутри тегов
    Код ( (Unknown Language)):
    1. [b]php][/b]Тут код[b][/[/b][b]code][/b][/color]
     
  2. engine.energy

    engine.energy Новичок

    С нами с:
    31 май 2015
    Сообщения:
    149
    Симпатии:
    0
    OR делай и радуй!
     
  3. kowapos

    kowapos Активный пользователь

    С нами с:
    18 янв 2013
    Сообщения:
    120
    Симпатии:
    0
    мне OR не нужен, мне нужен AND, для захвата всех товаров
     
  4. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    мож там union нужен?
     
  5. kowapos

    kowapos Активный пользователь

    С нами с:
    18 янв 2013
    Сообщения:
    120
    Симпатии:
    0
    я думал об этом, но надеялся, что буду варианты поудобнее
     
  6. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    а чем юнион неудобен? у меня голова сегодня не очень работает но я так понимаю есть сет продуктов с некоторым набором атрибутов и нужно фильтрануть их дополнительно по стране. мне тут как раз видится юнион - он добавит кортежей в результирующую таблицу. а джоин не видится - он добавляет поля в кортеж, что имхо не совсем верно. может быть.
     
  7. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.128
    Симпатии:
    1.248
    Адрес:
    там-сям
    таки ( asav1_1.id_attr_value=44 OR asav1_1.id_attr_value=45 ) скобочки не забывать ставить!!! т.к. приоритет у OR ниже, чем у AND.

    или asav1_1.id_attr_value IN(45, 46)

    ну или два простых запроса, объеденённые через UNION