Задать вопрос
Ответы пользователя по тегу MySQL
  • Как вывести статьи из категорий?

    nikitasius
    @nikitasius
    И так и по порядку:
    Как сделать выборку статей зная категорию в которой она находится.


    select b.* from 269816_blog b
    where b.id in 
    (select cl.blog_id from 269816_categorylist cl where cl.category_id=1);

    Где 1 - это номер категории, который вы знаете.
    Или
    select b.* from 269816_blog b
    where b.id in 
    (select cl.blog_id from 269816_categorylist cl 
    where cl.category_id=(select cat.id from 269816_category cat where cat.name=2001));

    Где 2001 это имя категории (у меня в базе на скорую руку числовые значения присвоены), которое вы тоже знаете.

    Так как выборка будет по primary ключам, то в вашей текущей задаче на скорости работы это ну никак не скажется.

    Бонус
    чтобы вывести все статьи из базы с указанием категорий, к которым они относятся, то можно использовать вот такой запрос:
    select b.*, group_concat(c.id)
    from 
    269816_blog b,
    269816_category c,
    269816_categorylist cl
    where cl.category_id=c.id
    and cl.blog_id=b.id
    group by b.id

    Выбираем статьи, затем указываем связь между категориями, и затем привязываем категории к статьям. В итоге получает вот такое:
    toster_269816_01_c66eed26ef57272f.png

    Статья 1 у нас в 2х категориях:
    toster_269816_02_39a95d0b73df4475.png

    Если в запросе изменить group_concat(c.id) на group_concat(c.name), то результатом будут названия категорий.
    Ответ написан
    Комментировать
  • Как написать правильно sql запрос?

    nikitasius
    @nikitasius
    Выборка по всем кастомер_ид, чтобы уточнить - добавьте where p.user_id=33 для юзера и/или where p.customer_id=2 для кастомера.
    Такая выборка НЕ выводит нулевые поля.
    select p.customer_id, p.`status`, count(p.id)
    from 247250_Products p
    group by p.customer_id, p.`status`

    Результат:
    sql_247250_1_1b10d020f1eaa6f9.png

    Выборка, которая выведет и нулевое значение:
    select s.customer_id, s.status_name,
    IFNULL((select count(id) from 247250_Products p where p.`status`= s.status_name),0) as 'count'
    from 247250_Statuses s

    Результат:
    sql_247250_2_cc195f18347ecc15.png
    Ответ написан
  • Как реализовать БД для контента 3 интернет-магазинов?

    nikitasius
    @nikitasius
    вариант силами БД:
    табличка товаров (самодельная) и три триггера (по числу магазинов) на insert и три на update.
    Тогда при вставке или правке данных в ней mysql автоматом выполнит операции, описанные в триггерах.
    Про phpmyadmin зря вы там, его как раз таки и удобно использовать для наполнения той "альфа таблицы", как и для создания триггеров.
    Ответ написан
    Комментировать
  • Движок интернет-магазина

    nikitasius
    @nikitasius
    3 года назад настраивал русский сайт на magento. Аналог китайских братьев (http://www.bigboxsave.com/ и вся их база), только русский.
    Движок достаточно тяжелый, но для большого магазина работал (~12к товаров).
    Ответ написан
    Комментировать