1 (изменено: expertseo, 2013-03-28 09:16:58)

Тема: Virtuemart 2 MySQL запрос на выборку, для публикации товара.

условие:

  • 1) если товар стоимостью меньше или равно 100 рублей

  • 2) остаток товара меньше или равно 10 шт тогда снять с публикации данный товар

цена товара находится в таблице "joomla25_virtuemart_product_prices" колонка product_price

количество товара находится в таблице  "joomla25_virtuemart_products" колонка product_in_stock

за публикацию товара отвечает таблица  "joomla25_virtuemart_products" колонка published, значение 1 (опубликовано) и 0 (снять с публикации)

связь таблицы "joomla25_virtuemart_product_prices" с таблицей "joomla25_virtuemart_products" идет через колонку virtuemart_product_id, данная колонка присутствует в обеих таблицах.


логика процесса такова... делаем выборку

1) в таблице "joomla25_virtuemart_product_prices" колонка "product_price" делаем выборку меньше или равно 100
2) на основании данной выборки получаем id товара в таблице "joomla25_virtuemart_product_prices" колонка "virtuemart_product_id"
3) на основании выборки "virtuemart_product_id" из п.2 выполняем выборку из таблицы "joomla25_virtuemart_products" колонка "product_in_stock" при условии  меньше или равно 10
4) на основании выборки из п.3 проставляем значение "0"   колонка "published" в таблице  "joomla25_virtuemart_products" 

Уважаемые специалисты помогите составить запрос.  smile

2

Re: Virtuemart 2 MySQL запрос на выборку, для публикации товара.

Перед выполнением сохраните исходные данные. Документацию смотрите здесь: http://dev.mysql.com/doc/refman/5.5/en/update.html

UPDATE `joomla25_virtuemart_product_prices` AS `p`, `joomla25_virtuemart_products` AS `m` SET
`m`.`published` =  0
WHERE `p`.`virtuemart_product_id` = `m`.`virtuemart_product_id`
AND `m`.`product_price` <= 100
AND `m`.`product_in_stock` <= 10

3 (изменено: expertseo, 2013-03-28 10:15:50)

Re: Virtuemart 2 MySQL запрос на выборку, для публикации товара.

при запросе выдает ошибку "#1054 - Unknown column 'm.product_price' in 'where clause' "

http://www.webpagescreenshot.info/i/457854-328201391406am.png

Hanut сказал:

Перед выполнением сохраните исходные данные. Документацию смотрите здесь: http://dev.mysql.com/doc/refman/5.5/en/update.html

UPDATE `joomla25_virtuemart_product_prices` AS `p`, `joomla25_virtuemart_products` AS `m` SET
`m`.`published` =  0
WHERE `p`.`virtuemart_product_id` = `m`.`virtuemart_product_id`
AND `m`.`product_price` <= 100
AND `m`.`product_in_stock` <= 10

4

Re: Virtuemart 2 MySQL запрос на выборку, для публикации товара.

Замените
AND `m`.`product_price` <= 100
На
AND `p`.`product_price` <= 100
Ошибся.

5 (изменено: expertseo, 2013-03-29 09:17:20)

Re: Virtuemart 2 MySQL запрос на выборку, для публикации товара.

Теперь другое дело ! Вроде работает !

Если немного усложнить задачу ? с диапазоном для выборки  ?

если товар стоимостью от 50 до 100 рублей
остаток товара от 5 до 10 шт

каким тогда будет запрос ?

6

Re: Virtuemart 2 MySQL запрос на выборку, для публикации товара.

expertseo сказал:

каким тогда будет запрос ?

Предлагайте варианты, я подскажу правильный. Ваша задача понять синтаксис SQL, а не спрашивать у меня готовые решения.

7

Re: Virtuemart 2 MySQL запрос на выборку, для публикации товара.

Hanut сказал:
expertseo сказал:

каким тогда будет запрос ?

Предлагайте варианты, я подскажу правильный. Ваша задача понять синтаксис SQL, а не спрашивать у меня готовые решения.

Согласен ! надо разбираться ! поэтому и пришел на Ваш форум  smile  так сказать по рекомендации, сказали что здесь хорошие ребята! обязательно помогут!  На самом деле если бы я мог предлагать варианты, обязательно что-то сообразил... но я в этом деле новичок и мне не хватает знаний так сходу разобраться в синтаксисе SQL.  А желание есть, ведь знания в данной сфере это экономия времени и оперативность !  smile

8

Re: Virtuemart 2 MySQL запрос на выборку, для публикации товара.

Добавьте еще одно условие. Так же и с количеством.

AND `m`.`product_price` <= 100
AND `m`.`product_price` >= 50

9

Re: Virtuemart 2 MySQL запрос на выборку, для публикации товара.

Спасибо ! начинаю понимать логику !!  smile