За последние 24 часа нас посетили 22624 программиста и 1209 роботов. Сейчас ищут 793 программиста ...

Помогите с выборкой из бд php mysql

Тема в разделе "PHP для новичков", создана пользователем Nubcoder32, 6 май 2021.

  1. Nubcoder32

    Nubcoder32 Новичок

    С нами с:
    23 мар 2021
    Сообщения:
    27
    Симпатии:
    0
    Доброго времени суток. Нужна помощь с запросом mySql
    Есть таблица:
    Screenshot_13.png
    Нужно сделать выборку: Найти variation_id, у которого product_id 3909, есть attr_id 10153 и attr_id 4962
     
    #1 Nubcoder32, 6 май 2021
    Последнее редактирование: 6 май 2021
  2. Drunkenmunky

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

    С нами с:
    12 авг 2020
    Сообщения:
    1.476
    Симпатии:
    281
    В том приложении, из которого вы добавили сриншот, есть вкладка поиск.
    Заполните необходимые поля для поиска и нажмите кнопку.
    Чуть выше результатов поиска будет выведен использованный SQL
     
  3. Nubcoder32

    Nubcoder32 Новичок

    С нами с:
    23 мар 2021
    Сообщения:
    27
    Симпатии:
    0
    Спасибо за ответ, но я не пойму как правильно заполнить поиск
     
  4. Drunkenmunky

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

    С нами с:
    12 авг 2020
    Сообщения:
    1.476
    Симпатии:
    281
    Если поиск по конкретному значению, то в поле выбора укажите "="
    Если только часть значения, то "%LIKE%"
     
  5. Nubcoder32

    Nubcoder32 Новичок

    С нами с:
    23 мар 2021
    Сообщения:
    27
    Симпатии:
    0
    Мне нужно такое
    Код (Text):
    1. SELECT * FROM `attributevariation` WHERE `product_id` = 3909 AND `attr_id` =
    2. 9567 AND `attr_id` = 4962
    Но вернет пустое значение
     
  6. Drunkenmunky

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

    С нами с:
    12 авг 2020
    Сообщения:
    1.476
    Симпатии:
    281
    Значит что-то не так с запросом. Или типом данных в таблице.
    Попробуйте заключить искомое в одинарные кавычки.
    Во вкладке SQL
     
  7. don.bidon

    don.bidon Активный пользователь

    С нами с:
    28 мар 2021
    Сообщения:
    863
    Симпатии:
    132
    на
    Код (Text):
    1. AND `attr_id` IN (9567, 4962)
    замените и подумайте, что Вы написали.
     
  8. Nubcoder32

    Nubcoder32 Новичок

    С нами с:
    23 мар 2021
    Сообщения:
    27
    Симпатии:
    0
    Спасибо за ответ, это я пытался так описать что мне нужно.
    Код (Text):
    1. SELECT variation_id FROM attributevariation WHERE product_id='3909' AND attr_id IN('9567','5112')
    Вернет все, где встречаются эти параметры, а мне нужно получить variation_id, к которому есть все заданные атрибуты, а такой запрос возвращает если есть хотя бы один из перечисленных атрибутов
     
  9. Drunkenmunky

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

    С нами с:
    12 авг 2020
    Сообщения:
    1.476
    Симпатии:
    281
    Код (Text):
    1. ....WHERE `product_id` = 3909  AND `attr_id` IN (10153, 4962)
    А, ответили уже.
     
    #9 Drunkenmunky, 6 май 2021
    Последнее редактирование: 6 май 2021
  10. Sail

    Sail Старожил

    С нами с:
    1 ноя 2016
    Сообщения:
    1.591
    Симпатии:
    360
    Тут ещё группиновка нужна и проверка на количество строк в выборке.
    Например:
    Код (SQL):
    1. SELECT variation_id FROM attributevariation WHERE product_id='3909' AND attr_id IN('9567','5112') GROUP BY variant_id HAVING COUNT(*) = 2;