|
MySQL.RU - Webboard
Вернуться
Сложное объединение таблиц (Михаил) 17/10/2016 - 11:07:54
Re: Сложное объединение таблиц (Михаил) 17/10/2016 - 11:38:20
Re: Сложное объединение таблиц (Михаил) 17/10/2016 - 12:04:16
Re: Сложное объединение таблиц (Михаил) 17/10/2016 - 12:36:54
Re: Решено (Михаил) 17/10/2016 - 23:16:07
> Original message text:
> From: Михаил - 17/10/2016 - 11:07:54
> Subject:Сложное объединение таблиц
> -----------------
> Натолкните на мысль пожалуйста.
> Опять столкнулся с проблемой выборки из таблиц.
> Причина в том, что изначально не были предусмотрены некоторые требования, которые требуется выполнить сейчас.
> Исходные условия:
> Существуют две таблицы.
> client (id, user_id, modified, ...) - (modified = timestamp)
> client_log (id,client_id,user_id, created, ...) - (created = timestamp)
>
> Когда заводится новый клиент он заносится только в таблицу client, фиксируется менеджер его занёсший (user_id) и дата создания записи.
>
> В дальнейшем при внесении правки в данные клиента предыдущая запись копируется из client в client_log то есть:
> id -> client_id
> user_id -> user_id
> ... -> ...
> а в client заносится user_id того, кто вносил правку и другие данные.
>
> НО! modified НЕ МЕНЯЕТСЯ!!!
> А в client_log создаётся created (timestamp) - время внесения изменений.
>
> Сейчас стоит задача определить сколько и каких новых клиентов кто из менеджеров заносил в базу в определённый период.
>
> Те клиенты, в которых не вносились изменения определяются легко:
> SELECT SQL_CALC_FOUND_ROWS `id`, `user_id`, `modified`, ...
> FROM client
> WHERE `modified` >='2014-01-01 00:00:00' AND `modified` <='2014-10-31 23:59:59' AND `user_id` = '12' ORDER BY `user_id`
>
> А вот как определить кто и когда создал клиента, в которого вносилась правка не могу придумать.
> Правка могла вноситься не один раз, в том числе автоматически. В этом случае user_id = 0
>
>
>
From: Михаил - 17/10/2016 - 11:38:20
Subject:Сложное объединение таблиц
-----------------
Попробовал так, но всё виснет и выскакивает по таймауту.
SELECT `client_id` FROM `client_log` WHERE `id` IN (SELECT `id` FROM `client_log` GROUP BY `client_id` ORDER BY `created`) AND `user_id`=12
[Это сообщение - спам!]
Последние сообщения из форума
Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL,
версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
43655
|
|