
aster
18.07.2018
11:48:23
такое имело бы смысл, если, например, o.id=1 - это енум, и помимо таблицы pets ещё существуют таблицы birds, insects и т.д.
и тогда на каждое o.id=1 будет свой енум.

Sultan
18.07.2018
11:48:25
просто не пойму логику. джон внутренний, но он допускает любые условия в on ...

Ilia
18.07.2018
11:48:28

aster
18.07.2018
11:48:35
но это не отменяет того, что это наркомания

Google

Ilia
18.07.2018
11:48:59

Sultan
18.07.2018
11:49:31
ну а имеет ли inner join смысл для любых условий?

Ilia
18.07.2018
11:50:21

Alexsandr
18.07.2018
11:50:52
Пустую полностью таблицу не могу загнать

Sultan
18.07.2018
11:51:07
смотри, если ты делаешь внутренний джоин, то это уже подразумевает, что ты хочешь по каким-то общим данным их объединять, не?

Alexsandr
18.07.2018
11:51:46

Ilia
18.07.2018
11:51:53
Это просто разрыв сетевого соединения с СУБД.

Alexsandr
18.07.2018
11:52:01
А

Ilia
18.07.2018
11:52:05

Alexsandr
18.07.2018
11:52:11
Просто типо интернет пропал?

Ilia
18.07.2018
11:52:25

Sultan
18.07.2018
11:52:53
НЕ
а какая ещё мотивация может быть у внутреннего джоина?

Google

Ilia
18.07.2018
11:53:11

Sultan
18.07.2018
11:54:07

Ilia
18.07.2018
11:55:30
Ты не по делу говоришь, ты задаёшь какие-то философские вопросы. На которые нет ответа в принципе, потому что их не может быть в принципе.
Ты запрос написал ? Ты JOIN там писал?
Вот у тебя и надо спрашивать, зачем ты это делал.

Sultan
18.07.2018
11:56:17
вот я и хочу понять, что из этого ближе в данной ситуации

Ilia
18.07.2018
11:56:41

Sultan
18.07.2018
11:56:57
а филосовские замечания делаешь уже ты

Ilia
18.07.2018
11:57:33

Denis
18.07.2018
12:16:56
Всем салют
Вопрос такой, есть таблица #1, мне нужно получить все её id, где в таблице #3 нет ничего для этого ID, но этот id таблица #3 знает только через таблицу #2

aster
18.07.2018
12:20:06
о. я как раз с месяц назад с таким ипалсо

Denis
18.07.2018
12:20:11
Уже час пытаюсь найти решение, что то из того что знаю, ничего не могу подобрать правильного, гугл не помог, возможно не туда гуглил.

aster
18.07.2018
12:20:15
в общем - не надо так делать

Denis
18.07.2018
12:20:53
Как не надо, и как надо?)

aster
18.07.2018
12:21:23
так не надо. потому что когда записей стало МНОГО - работа остановилась

Fike
18.07.2018
12:22:26

Denis
18.07.2018
12:22:30
Нет, мне надо разово в БД самому сделать запрос, без логов и прочего

aster
18.07.2018
12:22:54
ну тогда not exists

Google

aster
18.07.2018
12:27:01

Erick
18.07.2018
12:27:40
о, вот еще кто-то пришел со свеженьким

aster
18.07.2018
12:28:43
дык, ясен пень, что никто сюда не притащит ахуенный код чтобы похвастаться
я вот тут кстате на досуге допилил наконец отправку графиков прироста размера данных внутри бд через STGeomFromText
но, без ms sql rs не обойтись
а в идеале хотел, чтобы почта прям из sql agent отправлялась с графиком унутре
есть мысли как это можно сделать?


Nikita
18.07.2018
13:14:48
Всем привет-с
SELECT
mont, count(email) FROM (SELECT
date_format(sfo.created_at, '%Y-%m') as mont,
count(sfo.entity_id) as order_count,
sfo.customer_email as email,
sfo.entity_id as order_id
FROM sales_flat_order sfo
WHERE sfo.status IN ('reserved', 'complete', 'collect')
AND sfo.created_at BETWEEN date_sub(curdate(), INTERVAL 1 YEAR) AND curdate()
AND store_id = 49
GROUP BY sfo.customer_email, date_format(sfo.created_at, '%Y-%m') HAVING order_count > 1) as A
GROUP BY mont;
Есть такой запросец, работает как надо. Однако он достает инфу вида
mont, count
2017-12, 17
2018-01, 66
2018-02, 110
2018-03, 126
2018-04, 118
2018-05, 150
2018-06, 98
2018-07, 17
для конкретного store_id
а нужно достать вида
store_id, mont, count
1 2017-12, 17
1 2018-01, 66
1 2018-02, 110
1 2018-03, 126
1 2018-04, 118
1 2018-05, 150
1 2018-06, 98
1 2018-07, 17
2 2017-12, 17
2 2018-01, 66
и т.д.
т.е. достать до всех сторов
естественно я первым делом сделал так
JOIN core_store cs on sfo.store_id = cs.store_id
Но тогда у меня достается вида
2017-07,29
2017-08,276
2017-09,387
2017-10,483
2017-11,672
2017-12,1094
2018-01,1679
2018-02,4994
2018-03,9320
2018-04,9141
2018-05,10252
2018-06,11417
2018-07,1362
Т.е. он посчитал для одного месяца по всем стороам
Вот. Как сделать чтоб он правильно отработал?


Михаил Власов
18.07.2018
13:18:14
О, сегодня так же как вчера. ?

Nikita
18.07.2018
13:19:01
Ну да, все так же туплю на базовых вещах

Ilia
18.07.2018
14:09:27

aster
18.07.2018
14:11:17


Ilia
18.07.2018
14:13:37
Всем привет-с
SELECT
mont, count(email) FROM (SELECT
date_format(sfo.created_at, '%Y-%m') as mont,
count(sfo.entity_id) as order_count,
sfo.customer_email as email,
sfo.entity_id as order_id
FROM sales_flat_order sfo
WHERE sfo.status IN ('reserved', 'complete', 'collect')
AND sfo.created_at BETWEEN date_sub(curdate(), INTERVAL 1 YEAR) AND curdate()
AND store_id = 49
GROUP BY sfo.customer_email, date_format(sfo.created_at, '%Y-%m') HAVING order_count > 1) as A
GROUP BY mont;
Есть такой запросец, работает как надо. Однако он достает инфу вида
mont, count
2017-12, 17
2018-01, 66
2018-02, 110
2018-03, 126
2018-04, 118
2018-05, 150
2018-06, 98
2018-07, 17
для конкретного store_id
а нужно достать вида
store_id, mont, count
1 2017-12, 17
1 2018-01, 66
1 2018-02, 110
1 2018-03, 126
1 2018-04, 118
1 2018-05, 150
1 2018-06, 98
1 2018-07, 17
2 2017-12, 17
2 2018-01, 66
и т.д.
т.е. достать до всех сторов
Не делай так:
date_format(sfo.created_at, '%Y-%m')
Нарушение доменной целостности данных

Admin
ERROR: S client not available

Google

Alexsandr
18.07.2018
14:27:34
Через файл
А не подскажите как соиденить две базы?

Fike
18.07.2018
14:45:44
что такое соединить две базы?

Shestakow
19.07.2018
04:55:05
Народ, добрый день, подскажите пожалуйста как создать в таблице столбец, состоящий из 2х других в этой ж таблице. Имеется Таблица My_TABLE, поля street(LONGTEXT),house(LONGTEXT), пытаюсь в этой ж таблице созадть столбец address на основе 2х вышеперечисленных. Но не выходит . Запрос такой, INSERT INTO MY_TABLE (address)
SELECT CONCAT(street, ' ', house) FROM MY_TABLE; Подскажите пожалуйста что не так

Al
19.07.2018
04:58:40

Shestakow
19.07.2018
05:00:01
Такая задача))

user753
19.07.2018
05:26:37

Виктор
19.07.2018
05:28:54
Народ, добрый день, подскажите пожалуйста как создать в таблице столбец, состоящий из 2х других в этой ж таблице. Имеется Таблица My_TABLE, поля street(LONGTEXT),house(LONGTEXT), пытаюсь в этой ж таблице созадть столбец address на основе 2х вышеперечисленных. Но не выходит . Запрос такой, INSERT INTO MY_TABLE (address)
SELECT CONCAT(street, ' ', house) FROM MY_TABLE; Подскажите пожалуйста что не так
Можно через виртуальную колонку, если таковые поддерживаются используемой СУБД

Ilia
19.07.2018
06:14:15

Man
19.07.2018
06:48:49
Всем привет, есть вопрос
Недавно столкнулся с проблемой, mysql сжирает всю память, после очистки кеша и перезапуска сервиса все снова нормально (90 процентов освобождаеться)
Что глянуть, в чем может быть проблема?

Pavel
19.07.2018
08:03:59
А это разве не нормальное поведение? Ограничить мускулю обьем используемой памяти? :)

Valery
19.07.2018
08:28:06
Народ, можно сделать как нибудь, что бы при достижении определенного количества записей в таблице выполнился запрос?

Alexey
19.07.2018
08:34:10
CREATE OR REPLACE TRIGGER TRIGGER1 AFTER
INSERT ON gds
DECLARE
v_cnt INT;
BEGIN SELECT
COUNT(*)
INTO v_cnt
FROM
gds;
IF v_cnt >= 1000
then
-- действия --
end if;
END;

Anton
19.07.2018
08:40:17
но если записи идут не так часто или небольшая задержка допустима, лучше повесить евент. Считать количество при каждой вставке - такое себе удовольствие

Valery
19.07.2018
08:42:00
Записи идут очень очень часто и быстро. Грубо говоря цикл постоянно пихает записи в таблицу
в нескольких потоках
ококло 30 инсертов в секунду

Anton
19.07.2018
08:42:29
ТЫ жесточайше замедлишь вставку таким триггером

Google

Anton
19.07.2018
08:42:52
А что надо сделать вообще?нотификация "достигли стольки-то строк"?

Valery
19.07.2018
08:42:52
поэтому и не хочу дергать COUNT после инсерта

Anton
19.07.2018
08:43:09
Если пинг допустим - то стопудово евент
Если не допустим - то можно замутить какое-то поле-счётчик в другой таблице и инкрементить его. Но это тоже оверхед

Valery
19.07.2018
08:44:22

Anton
19.07.2018
08:45:09
1) Включаешь шедулер
2) делаешь процедурку с подсчётом количества и нужными действиями
3) в шедулере включаешь запуск этой процедурки раз в N времени

Pavel
19.07.2018
08:48:13
А что за запрос то должен выполнится? Идея какая?

Valery
19.07.2018
08:49:29