Здравствуйте, ув. гуру MySQL! Есть две таблицы ps_customers и ps_orders ps_customer клиенты - id_customer ps_orders заказы всех клиентов - id_order - id_customer - total_paid Нужно сделать такую выборку, чтобы на выходе получилось следующее id_customer - SUM(total_paid) т.е. Я хочу узнать на сколько в сумме заказал каждый клиент. Пробую вот так: SELECT ps_customer.id_customer, SUM(ps_orders.total_paid) FROM ps_customer JOIN ps_orders ON ps_orders.id_customer = ps_customer.id_customer WHERE ps_customer.id_customer = ps_orders.id_customer Но на выходе имею только одну строчку с суммой по всем заказам всех клиентов, а не каждого в отдельности. Подскажите пожалуйста, как выглядит правильный запрос, заранее благодарен!
Сделал так PHP: SELECT ps_customer.id_customer, SUM(ps_orders.total_paid) FROM ps_customer JOIN ps_orders ON ps_orders.id_customer = ps_customer.id_customer WHERE ps_customer.id_customer = ps_orders.id_customer AND ps_orders.valid=1 GROUP BY ps_customer.id_customer
и снова нужна ваша помошь. вот простой пример авторизации (скачал, т. к. в MySQL новичек) PHP: $login = $_POST['login']; $password = md5($_POST['password']); $query = mysql_query("SELECT * FROM `users` WHERE `login`='$login' AND `password`='$password'"); $row = mysql_num_rows($query); if($row > 0){ echo "Вы успешно авторизовались!"; }else{ echo "Неправильный логин или пароль!"; } база данных users c 5 столбцами (id,login,password,icq,ip) как сделать так чтобы когда пользователь введетлогин и пароль свои то открывалась новая страница с номером его icq. типа: здравствуйте (login) ваш icq (номер его icq из базы) вытащить вроде бы понятно SELECT 'icq' FROM users WHERE login = '$login'; но с авторизацией непонятно что.
Вместо строки где "Вы успешно авторизовались". PHP: echo 'привет '.$row['login'].' ваша асику:'.$row['icq']; ЗЫ в вашем скрипте уязвимость, читайте: http://php.net/manual/ru/function.mysql-real-escape-string.php http://php.net/manual/ru/function.htmlspecialchars.php
так не работает. через SQL запрос все получается нормально SELECT `icq` FROM `users` WHERE `login` = 'zxczxc' но через php непойму как сделать. пытаюсь как то так PHP: $login = $_POST['login']; $ffff = mysql_query("SELECT `icq` FROM `users` WHERE `login` = '$login'"); echo "Ваш логин $login. Bаш icq: $ffff"; в чем ошибки?
может просто 1 раз покажешь куда вставить эту mysql_fetch_XXX чем 5 раз обьяснять что, куда, зачем и почему.
например PHP: $login = mysql_real_escape_string ((string) $_POST['login']); $ffff = mysql_query ("SELECT `icq` FROM `users` WHERE `login` = '$login' LIMIT 0, 1"); if ( ! $ffff) die ('mysql_query() error'); $row = mysql_fetch_row ($ffff); echo 'Ваш логин ', htmlspecialchars ($login, ENT_QUOTES), '. Bаш icq: ', $row[0];
Есть 2 столбца: test1, test2 В test1 - Не уникальная md5 сумма, очень много повторов В test2 - Числа ~10-1000 Как вывести все строки у которых одинаковый test1 (md5), но разный test2. + еще сколько строк содержат аналогичный test1 и test2
Не тестировал, попробуй Code: select test2,test1 from table where 1<(select count(test1) from table group by test1) select test1,count(test1) from table group by test1 Возможно, ошибаюсь, тк некогда проверять.
Не работает, забыл уточнить что test2 то же не уникальна и содержит повторы. Таблица 2,5кк записей, 1,2гб
М.б. Code: SELECT a.* FROM table a inner join (select test1 from table group by test1 having count(test1)>1)b on a.test1=b.test1 order by test1
интересная задача 1. Задание № 1. Вводные данные: Есть таблица со статистикой регистраций: CREATE TABLE `regs` ( `user_id` int(11) NOT NULL default '0', `login` varchar(50) NOT NULL default '', `reg_date` datetime NOT NULL default '0000-00-00 00:00:00', PRIMARY KEY (`user_id`), ) ENGINE=MyISAM DEFAULT CHARSET=utf8 Задание: Необходимо вывести количество регистраций за каждые 10 минут с 2009-09-21 до 2009-09-23. Быстро. Красота не нужна, только правильные данные. Результаты нужны только один раз. решить за 1 sql запрос
ребят помогите с задачей: условие: имеется таблица с 1 полем, заполненная числами по порядку: {1,2,4,7,8,11..}. Написать SQL Запрос который делает выборку следующего вида (2 столбца): {{3,1},{9,2},...}, Т.е. в первом поле идет число с которого начинается пропуск, во втором количество пропущенных чисел; Желательно использование оператора Select и без сильных наворотов, т.к. это только начало курса. Если можно с объяснениями=) Спасибо)
здравствуйте! Имеется запрос: Code: SELECT COUNT(*) as `count` FROM `tb1` WHERE (`date` BETWEEN '2012-02-10' AND '2012-02-12') GROUP BY `date` ORDER BY date DESC"; В результате получается: 2012-02-10 - 10 2012-02-11 - 5 2012-02-12 - 7 Подскажите пожалуйста как можно составить так запрос если имеется колонка "st" (которая может принимать значения: ok, not_ok, wait) чтобы на выходе было примерно такое: date - all_count - ok_count - not_ok_count - wait_count 2012-02-10 - 10 - 1 - 5 - 4 2012-02-11 - 5 - 1 -2 - 3 2012-02-12 - 7 - 2 - 3 - 2
Нашел ответ на свой вопрос! кому может пригодится: PHP: SELECT DATE( `date` ) AS `date2` , COUNT( * ) AS `all` , sum( `status` = 'accepted' OR `status` = 'wait' ) AS wait, sum( `status` = 'delivered' ) AS ok, sum( `status` = 'failed' ) AS not_ok FROM `tb1` WHERE ( `date` BETWEEN '2012-02-11 00:00:00' AND '2012-02-12 23:59:59' ) GROUP BY `date2` ORDER BY DATE( `date` ) DESC LIMIT 0 , 30
Всем доброгов ремени суток, не силен в sql, но очень надо. Такая проблема, не вставляется в поля ip, http_refferer и create_date. Ну т.е. вот такая вот ошибочка у меня вылетает: insert into tbl ( ip, http_referer, create_date ) values ( '127.0.0.1', '', NOW() ). Я грешу на то, что у меня выставлен неправильно тип данных, для ip я поставил longtext, для http_referer - text и для create_date - datetime.