IMDb

Новенький
  • Публикации

    3
  • Зарегистрирован

  • Посещение

Репутация

0 Обычная

О IMDb

  • Звание
    Новичок
  1. Excel в HTML

    При создании сводного прайса от поставщиков для своего интернет-магазина использую программу iNETsHOP, ее можно настроить под структуру каждого прайса и залить все товары прайс-листов в общую базу данных ​ ​ ​потом в ней легко объединять дубли товаров от разных поставщиков или по названиям или по артикулам ​ ​
  2. связь товаров с заказми

    Вся суть релляционных баз данных состоит как раз в этом. Если вы не можете в ЦМС магазина скрыть товар который вышел из оборота чтоб она не мешал - это недоработка самой ЦМС. Если вы хотите чтобы при удалении товара удалялись все записи в других таблицах (заказы например) - то настройте автоматическое удаление в самой СУБД. Или на крайний случай обнуление ссылающегося поля.
  3. select несколько пар условий из одной таблицы

    Как то вы заморочились ... SELECT DISTINCT *FROM table t1LEFT JOIN table t2 ON (t2.product_id = t1.product_id)LEFT JOIN table t3 ON (t3.product_id = t1.product_id)WHERE t1.id_propertie = 100 AND t1.select_value = 2 AND t2.id_propertie = 200 AND t2.select_value = 1 AND t3.id_propertie = 300 AND t3.select_value = 8 ​Если таблица товаров большая, то по идее может быть имеет смысл использовать EXISTS, например SELECT * FROM table t WHERE EXISTS (SELECT 1 FROM table t1 WHERE t.product_id = t1.product_id AND t1.id_propertie = 100 AND t1.select_value = 2) AND EXISTS (SELECT 1 FROM table t2 WHERE t.product_id = t2.product_id AND t2.id_propertie = 100 AND t2.select_value = 2) AND EXISTS (SELECT 1 FROM table t3 WHERE t.product_id = t3.product_id AND t3.id_propertie = 100 AND t3.select_value = 8) заодно уберем DISTINCT. Если пары id_propertie и select_value встречаются только по одному разу, можно сделать через подзапрос SELECT product_id FROM table t WHERE ( SELECT product_id FROM table t1 WHERE (t1.product_id AND t1.id_propertie = 100 AND t1.select_value = 2) OR (t1.product_id AND t1.id_propertie = 100 AND t1.select_value = 3) OR (t1.product_id AND t1.id_propertie = 100 AND t1.select_value = 8) HAVING count(product_id) =3 ) t2 WHERE t.product_id = t2.product_id ​Если требуется показать колоичество записей в выборке, но не хочется выполнять громоздние запросы два раза - сохраните результат поиска во временной таблице, в пользователю покажите таблицу из нее и количество записей в ней.