Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Запрос из двух таблиц
 
 автор: bmg1   (13.01.2007 в 16:15)   письмо автору
 
 

Не могу написать запрос что бы выбрать за один раз КОЛЛИЧЕСТВО сделанных ПОКУПОК, ОБЩАЯ СУММА всех покупок, по отношению к ОДНОМУ пользователю.

Есть две таблицы:
Sale: 
id (1,2,3,..)
login (vasja, petja, vasja,anton,..)
date (111152525, 1525252, 212512, ...)

Products:
id (1,2,3,...)
sale_id (3,3,6,7,7,9,..)
name (tel1, tel2,tel1,tel5,...)
price (3000,4500, 3000,1500,...)
count(1, 2, 1, 4, 1, ..)
discount (0, 1, 0, 1)


Пробывал так, но не работает :(

mysql_query("SELECT 
SUM('PRODUCTS.price') AS `sum` AND 
SUM('PRODUCTS.count') AS `count` AND 
COUNT('PRODUCTS.discount') AS `discount` 
FROM `PRODUCTS` AND `SALE` 
WHERE `PRODUCTS.discount`>='0' AND `PRODUCTS.id`='SALE.id' AND `SALE.login`='".$user."'")

Перепробывал все что знал(но знаю мало) :(

Делаю сейчас двумя запросами одним выбираю массив ID запрашиваемого пользователя из SALE.
Второй в цикле WHILE(PHP) выбираю из PRODUCTS считая потраченую сумму, и колличество товара, для этого пользователя.
Хочется стремится к норме!

   
 
 автор: Trianon   (13.01.2007 в 20:40)   письмо автору
 
   для: bmg1   (13.01.2007 в 16:15)
 

Несовсем ясно, что хранится в таблице Sale и в таблице Products.
Может дадите таблицам адекватные имена?

   
 
 автор: bmg1   (14.01.2007 в 14:38)   письмо автору
 
   для: Trianon   (13.01.2007 в 20:40)
 

В таблице SALE хранятся сделанные покупки.
В таблице PRODUCTS хранятся купленные при покупке товары и каждой позиции присвоена ID покупки из SALE.

   
 
 автор: Trianon   (14.01.2007 в 17:40)   письмо автору
 
   для: bmg1   (13.01.2007 в 16:15)
 


$sql = "SELECT COUNT(sales_id)as cnt, SUM(price*sale.`count`) as ttl
        FROM products  JOIN sales ON products.sales_id = sale.id
        GROUP BY login
        HAVING login = '$user'"

Прошу прощения.... сразу не понял.
Достаточно нетипично, что свойства товара поставлены в зависимость от факта покупки.
Ну и то, что таблица клиентов названа "продажи" тоже сбило с толку...

   
 
 автор: bmg1   (15.01.2007 в 03:28)   письмо автору
 
   для: Trianon   (14.01.2007 в 17:40)
 

Спасибо за ответ!

Оказалось что все должно было бы работать, я перемудрил с кавычками, 5 лет работал, решил в туалете(сорри за подробности), почитать мануал по mysql. В котром написано ставить везде кавычки во избежании проблем... :)
Начал заставлять себя писать их, и до вставлялся.

Спасибо все знающему ZG!

Вот это работает:

SELECT 
SUM(products.price) AS `sum`, 
SUM(products.count) AS `count`, 
COUNT(products.discount) AS `discount` 
FROM `products`, `sale`
WHERE sale.login='".$user."' AND products.list=sale.id



Еще раз извините за беспокойство, сам потратил на это уйму времени, и от безисходности в форум написал.

Удачи и свежего ума.

P.S. Относительно состава таблиц, то это таблицы статистики, для простоты читания уменьшил их названия(сорри за каламбур), и видимо тоже перемудрил. В них хранятся сделанные покупки с данными пользователей на момент покупки(так как данные могут поменяться), и колличество с названием, стоимостью купленного товара на момент покупки так как это тоже меняется.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования