@yii2ru

Страница 1671 из 1721
SiZE
06.10.2018
18:29:14
А как?
строку

вообще дистинкт зло )

Сергей
06.10.2018
18:29:49
строку
То есть? ))

Artyom
06.10.2018
18:51:01
три поля: id, time, customer_id группируем по customer_id, считаем max(time), а вот id соответствующее уже без вложенного никак не получить
Кофе пил, подумалось... 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

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); - наверн как вариант, работает или нет, не знаю.

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

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';

А вообще, так лучше не делать.

$script = <<< JS $params =3; JS; $this->registerJs($script, yii\web\View::POS_READY);
если на jquery бомбишь, то лучше добавь в какой-нибудь тег data-param=3, а потом $('.you-wrapper-class').data('param');

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
а второй вариант вообще фигня полная там нет привязки к покупателю
по моей логике created_at будет максимальным, для последней id-шки заказа привязаного к заказу.

таким образом мы можем получить списко покупателей и их последний заказ.

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 Вроде правильно работает, но как-то всё это не красиво)

Artyom
06.10.2018
21:17:33
по твоей логике может и будет, только в условии было сказано иначе...
в моем варианте я придерживаюсь того, что для последней id-шки и есть последняя дата создания, это нормально)

тут
ну тогда засада.

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
Ребята, не работает bootstrap tooltip, что только не пытался сделать, ну не хочет
тултип, насколько я помню, инициализировать надо в js. еще проверить z-index в css для него

Andrey
06.10.2018
22:05:36
если такая засада с id-шками, то мне пока лучше решение чем Сереги не приходит в голову.
Ничо) кто-то с sql весь день сидит, а я убил весь день чтобы форму сделать ?

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
но snum дублируется, видишь?
Из группировки дату убрать, ид пользователя добавить. И в селект добавить ид пользователя

Сергей
07.10.2018
05:21:42
Из группировки дату убрать, ид пользователя добавить. И в селект добавить ид пользователя
когда в группировке несколько полей - он выведет строки для всех сочетаний

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

Сергей
07.10.2018
05:24:11
А что за СУБД?
По классике)) MySQL

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

Сергей
07.10.2018
05:25:35
А версия? Я к тому чтобы заюзать оконные функции
Локально у меня 5.7. Продакшена ещё нет

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
Почитаю, спасибо)

Страница 1671 из 1721