Вообщем алгоритм должен быть таким:
1. Я выбираю минимальное число и максимальное число с того столбца с числами
2. Генерю девять случайных чисел от минимального до максимально (как раз тут и нужно, что бы числа шли по порядку и не было пропусков между ними)
3. Далее составляю строку из чисел вида: число1, число2, число3...
4. Делаю выборку по условию WHERE столбец_с_числами IN (составленная строка)
EuGen, я это уже читал... В первом варианте есть вероятность повторения строки, а во втором запрос проходит по условию WHERE RAND()..., что не есть гуд (по моему) =))
Вообще то можно =) Просто выборка выбирает 9 рандомных записей...Когда числа идут по порядку без пропусков, а не так как id, то отпадает вероятность выбора пустой строки или повторяющейся строки =)
Привет всем. Помогите с одной штукой. В таблице есть доп поле с номером записи (это не id), номера идут по порядку, то есть 1, 2, 3, 4... Но если удалить, например, вторую запись, то получится 1, 3, 4... Так вот, как при удалении пересчитать это поле, что бы опять шло по порядку? =)
EuGen, говроти, что не известное поле gio.id_заказа, но всё равно огромное тебе спасибо )) Совершенно забыл про GROUP BY )) Сделал немного другим запросом и все получилось ))
Всем здрасте. У меня возникла проблемка, не знаю как решить (( Может кто поможет? Дело вот в чем:
Есть 3 таблицы: справочник товаров, заказы и товары в заказах.
справочник товаров хранит всю инфу о товарах (id, название, цена, ...)
таблица заказов хранит инфу про заказы (id, номер, дата, заказчик...)
таблица товаров в заказе (id, id_заказа, id_товара, кол-тво_заказаного_товара)
Так вот, мне нужно выбрать желательно одним запросом, такую инфу из этих трёх таблиц
id_заказа, номер_заказа, заказчик, дата, сумма_заказа
g.цена_товара * gio.кол-во_данного_товара в заказе AS sum
FROM заказы o, товары g, товары_в_заказах gio
WHERE o.id_заказа = gio.id_заказа AND
g.id_товара = gio.id_товара
Проблем вроде нету кроме одной!
Если есть один заказ с двумя разными товарами, то мне его выбирает два раза, только с разной суммой. То есть например один товар стоит 1500 и его заказали две штуки, другой товар в том же заказе стоит 2000 и его заказали 3 штуки, то мне выведет как будто два разных заказа и сумма первого будет 3000, а второго 6000, все остальные поля одинаковы, и номер, и заказчик, и id.
Так вот собственно вопрос: Как изменить мой запрос, что бы он выводил все заказы и считал общую сумму одного заказа?
Постарался описать как можно подробнее )) Заранее всем откликнувшимся спасибо )
Саныч, ну таблица товаров так и есть, а вот с заказами наверное всё таки сделаю на две таблицы. Спасибо ) (Добавление)
Хорошо, еще вопрос: Допустим клиент оформил заказ, я его записал в таблицу как id, дата, кто заказал, статус и т.д., а потом мне соответственно нужно добавить в таблицу товаров в заказе сами id заказа, id товара, количество. Так вот как мне узнать под каким id записался заказ в таблицу заказов, что бы потом записать этот id как id заказа в таблицу товаров в заказе?
не знаю извращенство или нет, но никак не могу придумать, как оптималнее всего хранить заказы в БД (Добавление)
Просто как мне показалось, что это нормально, что у тебя есть заказ, в этом заказе хранятся все айди товаров через запятую, которые заказали и количество этих товаров тоже через запятую. Вот как вывести все товары с этими айди, я знаю
Саныч, нет. В поле count количество лежит в виде строки: 2, 2, 4, а айди товаров в виде строки 1, 2, 3, так вот первая цифра count относится к первой цифре айди, вторая ко второй, третья к третьей и т.д
Привет знатоки MySQL! Передо мной стала такая вот задачка: Делаю интернет магазин, вся корзина построена на кукисах, в базу заносится уже готовый заказ. Заносится в таком виде:
Есть поля itmes_id, count где в itmes_id хранятся идентификаторы товаров в виде 1, 2, 3 и т.д., и в count хранится количество товаров в виде 2, 2, 4 и т.д., соответственно первая цифра относится к первому id, вторая ко второму и т.д. Так вот, как можно одним запросом умножить к примеру цену товара с таким id на количество, которое относится к этому товару?
Тоесть что бы вывести все товары мне нужно сделать запрос типа
SELECT title, price FROM goods WHERE id IN(1, 2, 3);
А вот как сделать, что бы сразу во время запроса количество умножалось на цену и выдавало мне сумму? Что то типа такого, но так естественно не работает, так, пишу для понимания: