
SiZE
06.10.2018
18:29:14
вообще дистинкт зло )

Сергей
06.10.2018
18:29:49

Artyom
06.10.2018
18:51:01

Google

Artyom
06.10.2018
18:51:05
Да загнало)
?
Помостри, работает или нет?

Subb98
06.10.2018
18:53:51

Artyom
06.10.2018
18:59:50
SELECT id, created_at, costomer_id FROM order WHERE id IN (SELECT max(id) FROM order GROUP BY customer_id); - наверн как вариант, работает или нет, не знаю.

Andrey
06.10.2018
19:06:49

Artyom
06.10.2018
19:08:04
Ну, я, например, временами, да. Как-то такое себе тупить так ? Похоже хоть на правду?
Ладно, проехали...

Nikitcat
06.10.2018
19:12:06
как выключить дебажный тулбар в консоли?

Artyom
06.10.2018
19:12:31
в конфиге.
в смысле в консоли?

Nikitcat
06.10.2018
19:13:10
you have enabled the debug toolbar in console application

Artyom
06.10.2018
19:13:13
не, не знаю, но в общем, можно вообще выключить в конфиге.

Google

Nikitcat
06.10.2018
19:13:42
в каком?

Artyom
06.10.2018
19:13:52
ну я не знаю какие у тебя есть.

Nikitcat
06.10.2018
19:14:27
у меня yii-advanced. Знаю что можно в index.php отключить
а где оно ещё есть
Exception 'yii\base\UnknownMethodException' with message 'Calling unknown method: yii\console\Request::validateCsrfToken()'
in /home/dev/projects/pet-projects/yii2/vendor/yiisoft/yii2/base/Component.php:300
Stack trace:
#0 /home/dev/projects/pet-projects/yii2/vendor/yiisoft/yii2/web/Controller.php(165): yii\base\Component->__call('validateCsrfTok...', Array)
вот такая ошибка, когда в консоли ввожу php yii mailer/send
на гите пишут, что типо включить дебаг

Artyom
06.10.2018
19:15:19
просто ctrl+shift+f на папке с конфигами напиши yii\debug\Module найдет где подключено.

Nikitcat
06.10.2018
19:15:20
выключил - не помогло

Artyom
06.10.2018
19:15:30
или просто дебаг.
что за фигня у тебя, ты точно консольное приложение запускаешь?
Controller от чего наследован?
/web/Controller.php
а надо консоль.
yii\console\Controller

Dmitriy
06.10.2018
19:17:03

Nikitcat
06.10.2018
19:18:47

Artyom
06.10.2018
19:18:56
нзч, бывает.
?

Nikitcat
06.10.2018
19:22:57

Google

Roman
06.10.2018
19:36:29
$script = <<< JS
$params =3;
JS;
$this->registerJs($script, yii\web\View::POS_READY);
почему yii в этом коде принимает меременную $params как php переменную а не js?

Artyom
06.10.2018
19:37:20
в "" и heredoc подставляются переменные О_о
или экранируй, или $script = 'var $params=3';
А вообще, так лучше не делать.

SiZE
06.10.2018
20:32:05
Вот люди чо то пользуют и даже не знают чо
И не просто люди, программисты блин )

Aziz
06.10.2018
20:33:10
Ребята, не работает bootstrap tooltip, что только не пытался сделать, ну не хочет
подскажите пожалуйста

Andrey
06.10.2018
21:09:13

Artyom
06.10.2018
21:09:31
create_at

Andrey
06.10.2018
21:09:50
а второй вариант вообще фигня полная там нет привязки к покупателю
create_at
ага только нужно получить id для максТайм...

Artyom
06.10.2018
21:12:49
таким образом мы можем получить списко покупателей и их последний заказ.

Andrey
06.10.2018
21:13:32
и еще ты джойнишь ордер с ордером...

Artyom
06.10.2018
21:14:09
ну это я доделал предложенный вариант)

Andrey
06.10.2018
21:14:20
по твоей логике может и будет, только в условии было сказано иначе...

Google

Artyom
06.10.2018
21:14:23
потому что мне решение показалось подозрительным)
вот.
вот.

Admin
ERROR: S client not available

Artyom
06.10.2018
21:16:27
Пока у меня вышло вот такое:
SELECT DISTINCT o.id, o.created_at, o.customer_id
FROM `order` o
INNER JOIN (
SELECT MAX(created_at) as maxdt, customer_id
FROM `order`
GROUP BY customer_id
) o2 on o2.customer_id = o.customer_id AND o.created_at=o2.maxdt
Вроде правильно работает, но как-то всё это не красиво)

Andrey
06.10.2018
21:17:22
и чуть ниже

Artyom
06.10.2018
21:17:33

Andrey
06.10.2018
21:18:42
неа

Artyom
06.10.2018
21:20:27
неа
И чего ты не рассказываешь?

Andrey
06.10.2018
21:22:48
нужно написать)

Artyom
06.10.2018
21:25:32
про меня в сб.
нужно написать)
если такая засада с id-шками, то мне пока лучше решение чем Сереги не приходит в голову.

Oleg
06.10.2018
21:48:59

Andrey
06.10.2018
22:05:36

Andrey
06.10.2018
22:11:41
пришел к тому же варианту Сергея, только DISTINCT у него лишний - он ничего не сделает - o.id всегда уникально, если нужно отсеять заказы созданные в одну секунду, то нужно просто внешний запрос сгруппировать по customer_id
че там ту форму делать?!... )))
хотя пару лет назад я тоже сидел ковыряя ActiveForm пока не разобрался...

Google


Сергей
07.10.2018
04:14:46
Вчера, как-то активно обсуждался мой вопрос про sql-запрос c группировкой.
Я выкладывал вариант:
SELECT DISTINCT o.id, o.created_at, o.customer_id
FROM `order` o
INNER JOIN (
SELECT MAX(created_at) as maxdt, customer_id
FROM `order`
GROUP BY customer_id
) o2 on o2.customer_id = o.customer_id AND o.created_at=o2.maxdt
@sizeg тут правильно раскритиковал про использование DISTINCT, он тут бессмысленен. А то, что я хотел сделать (исключить ситуацию, когда у одного покупателя есть несколько заказов с одной датой), можно реализовать с помощью дополнительной группировки. В итоге вышло так:
SELECT o.id, o.created_at, o.customer_id
FROM `order` o
INNER JOIN (
SELECT MAX(created_at) as maxdt, customer_id
FROM `order`
GROUP BY customer_id
) o2 on o2.customer_id = o.customer_id AND o.created_at = o2.maxdt
GROUP BY o.customer_id
@wolcharryk предлагал такой вариант:
SELECT o.id, o.created_at, o.customer_id
FROM `order` o
INNER JOIN (
SELECT max(id) as order_id, customer_id
FROM `order`
GROUP BY customer_id
) o2 on o2.order_id = o.id;
Этот вариант не подходит, так как есть допущение - что максимальный ID - это всегда последний заказ. И если я не ошибаюсь, то такой запрос можно просто переписать вот так: SELECT MAX(id), created_at, customer_id FROM `order GROUP BY customer_id`
В конце концов пошёл по другому пути и сделал вот такой запрос:
SELECT
SUBSTRING_INDEX(GROUP_CONCAT(id ORDER BY created_at DESC),',',1),
MAX(created_at),
customer_id
FROM `order`
GROUP BY customer_id
Суть простая. GROUP_CONCAT(id ORDER BY created_at DESC) позволяет нам получить строку, состоящую из id сгруппированных строк через запятую отсортированные по полю created_at от большего к меньшему, то есть первый id - это тот самый ID последнего заказа у данного покупателя. SUBSTRING_INDEX возвращает этот первый ID.
Всем спасибо за участие :)


Vladimir
07.10.2018
05:17:48

Сергей
07.10.2018
05:21:42

Vladimir
07.10.2018
05:23:02
А что за СУБД?

Сергей
07.10.2018
05:24:11

Vladimir
07.10.2018
05:24:52
А версия? Я к тому чтобы заюзать оконные функции

Сергей
07.10.2018
05:25:35

Vladimir
07.10.2018
05:26:22
Так это, мигрируй на 8) пока не поздно

Сергей
07.10.2018
05:26:43
А чего там ползеного?

Vladimir
07.10.2018
05:27:21
Оконные функции
Помогут найти разрыв в последовательности заказов пользователя

Сергей
07.10.2018
05:28:39
Почитаю, спасибо)