Проблема объединения и УПОРЯДОЧИВАНИЯ MySQL (сортировка по нескольким таблицам)

#mysql #sorting #join #union

#mysql #сортировка #Присоединиться #объединение

Вопрос:

У меня большая проблема. Мне нужно объединить три таблицы и отсортировать данные по столбцу даты. Я пробовал подвыборки, объединения и объединения — безуспешно.

  • portal_gm_provide это таблица, в которой хранится глобальный wms_id.
  • portal_gm_log это таблица, в которой хранится вся информация о протоколировании (info, предупреждение, ошибка).
  • portal_gm_cron это таблица, в которой хранится информация cronjob (успех или ошибка).

Проблема в том, что эти три таблицы не имеют одинаковой структуры и одинакового поля даты. Могу ли я объединить и упорядочить данные так, чтобы все подходящие данные располагались в строке, а ненужные поля были равны НУЛЮ, как при соединении ВЛЕВО / ВПРАВО?


ВЫБЕРИТЕ 
db_main.wms_id КАК id_wms, 
db_log.message, db_log.message_real, db_log.id_layer, 
db_log.code, db_log.subcode, db_log.counter, db_log.time_first, db_log.time_last, 
db_cron.ошибка, db_cron.errorno, 
СЛУЧАЙ
 КОГДА db_log.time_first РАВЕН НУЛЮ, ТОГДА db_cron.time
 ELSE NULL # db_log.time_first
ЗАКАНЧИВАЕТСЯ КАК время
ИЗ portal_gm_provide КАК db_main
ПРАВОЕ ОБЪЕДИНЕНИЕ portal_gm_log КАК db_log В db_log.id_wms = db_main.wms_id 
ПРАВОЕ ОБЪЕДИНЕНИЕ portal_gm_cron КАК db_cron В db_cron.id_wms = db_main.wms_id 
ГДЕ db_main.user_id = 1
ПОРЯДОК По времени DESC
ОГРАНИЧЕНИЕ 50

СОЗДАЙТЕ ТАБЛИЦУ, ЕСЛИ НЕ СУЩЕСТВУЕТ `portal_gm_provide` (
 `id` int(10) беззнаковое НЕ НУЛЕВОЕ АВТО_ИНКРЕМЕНТНОЕ увеличение, 
 `user_id` int(10) без знака NOT NULL ПО УМОЛЧАНИЮ '0', 
 `wms_id` int(10) без знака NOT NULL ПО УМОЛЧАНИЮ '0', 
 Параметр `mail_notify` (100) ПО УМОЛЧАНИЮ РАВЕН НУЛЮ, 
 Параметр `mail_period`(100) ПО УМОЛЧАНИЮ РАВЕН НУЛЮ, 
 `time` datetime НЕ РАВНО НУЛЮ, 
 `time_cron` datetime ПО УМОЛЧАНИЮ NULL, 
 ПЕРВИЧНЫЙ КЛЮЧ (`id`)
) КОДИРОВКА по умолчанию ENGINE= MyISAM = utf8;

СОЗДАЙТЕ ТАБЛИЦУ, ЕСЛИ НЕ СУЩЕСТВУЕТ `portal_gm_log` (
 `id` int(10) беззнаковое НЕ НУЛЕВОЕ АВТО_ИНКРЕМЕНТНОЕ увеличение, 
 `code` int(10) без знака NOT NULL ПО УМОЛЧАНИЮ '0', 
 `subcode` int(10) по УМОЛЧАНИЮ без знака '0', 
 `id_wms` int (10) по УМОЛЧАНИЮ без знака '0', 
 `id_layer` int(10) по УМОЛЧАНИЮ без знака '0', 
 `message` mediumtext, 
 `message_real` mediumtext, 
 `counter` int(10) без знака NOT NULL ПО УМОЛЧАНИЮ '1', 
 `time_first` datetime НЕ равен НУЛЮ, 
 `time_last` datetime ПО УМОЛЧАНИЮ NULL, 
 ПЕРВИЧНЫЙ КЛЮЧ (`id`),
 КЛЮЧ `id_wms` (`id_wms`), 
 КЛЮЧ `id_layer` (`id_layer`)
) КОДИРОВКА по умолчанию ENGINE= MyISAM = utf8;

СОЗДАЙТЕ ТАБЛИЦУ, ЕСЛИ НЕ СУЩЕСТВУЕТ `portal_gm_cron` (
 `id` bigint(20) беззнаковое НЕ НУЛЕВОЕ АВТО_ИНКРЕМЕНТНОЕ увеличение, 
 `id_wms` int (10) по УМОЛЧАНИЮ без знака '0', 
 `ошибка` varchar(250) Значение по УМОЛЧАНИЮ NULL, 
 `errorno` int (10) по УМОЛЧАНИЮ без знака '0',
 `flag` int(10) по УМОЛЧАНИЮ без знака '0', 
 `time` datetime ПО УМОЛЧАНИЮ NULL, 
 ПЕРВИЧНЫЙ КЛЮЧ (`id`),
 КЛЮЧ `GM_ID` (`id_wms`), 
 КЛЮЧ `DATUM` (`время`)
) КОДИРОВКА ПО УМОЛЧАНИЮ ENGINE= InnoDB = utf8;

ВСТАВИТЬ В `portal_gm_provide` (`id`, `user_id`, `wms_id`, `mail_notify`, `mail_period`, `time`, `time_cron`) ЗНАЧЕНИЯ
 (1, 1, 2, 'MOD_GEOMONITOR_PROVIDE_NOTIFY_STATE_WARNINGERROR', 'MOD_GEOMONITOR_PROVIDE_NOTIFY_PERIOD_3H', '2011-04-21 10:35:36', '2011-05-13 10:10:02'), 
 (2, 1, 1389, 'MOD_GEOMONITOR_PROVIDE_NOTIFY_STATE_WARNINGERRORIN', 'MOD_GEOMONITOR_PROVIDE_NOTIFY_PERIOD_ IMMEDIATELY', '2011-05-02 13:42:02', '2011-05-13 11:34:01'), 
 (3, 1, 415, 'MOD_GEOMONITOR_PROVIDE_NOTIFY_STATE_WARNINGERRORIN', 'MOD_GEOMONITOR_PROVIDE_NOTIFY_PERIOD_ IMMEDIATELY', '2011-05-02 13:42:02', '2011-05-13 11:53:01');

ВСТАВИТЬ В `portal_gm_log` (`id`, `code`, `subcode`, `id_wms`, `id_layer`, `message`, `message_real`, `counter`, `time_first`, `time_last`) ЗНАЧЕНИЯ (578, 8192, 0, 415, 5975, ' Допустимый SRS не найден. Возможно, нет соответствующего поля привязки. Значение по умолчанию EPSG:4326.', NULL, 90, '2010-10-21 20:19:42', '2010-10-27 13:42:52');
ВСТАВИТЬ В `portal_gm_log` (`id`, `code`, `subcode`, `id_wms`, `id_layer`, `message`, `message_real`, `counter`, `time_first`, `time_last`) ЗНАЧЕНИЯ (3984, 8192, 0, 415, 5975, ' Не найдено допустимого поля для данного SRS. Возможно, нет соответствующего поля привязки. Значение по умолчанию EPSG:4326.', NULL, 483, '2010-10-27 15:16:05', '2010-12-02 08:18:19');
ВСТАВИТЬ В `portal_gm_log` (`id`, `code`, `subcode`, `id_wms`, `id_layer`, `message`, `message_real`, `counter`, `time_first`, `time_last`) ЗНАЧЕНИЯ (7800, 4352, 0, 415, 0, 'www.umweltkarten.mv-regierung.de ', 'сбой каждого предоставленного сервера имен: Успех', 3, '2010-11-26 00:37:05', '2010-11-29 21:34:27');
ВСТАВИТЬ В `portal_gm_log` (`id`, `code`, `subcode`, `id_wms`, `id_layer`, `message`, `message_real`, `counter`, `time_first`, `time_last`) ЗНАЧЕНИЯ (14471, 12288, 0, 1389, 19219, ", NULL, 95, '2011-05-02 14:24:01', '2011-05-13 10:40:51');

ВСТАВЬТЕ В `portal_gm_cron` (`id`, `id_wms`, `error`, `errorno`, `flag`, `time`) ЗНАЧЕНИЯ (2530349, 415, 'Ошибка при загрузке XML-файла. (Не найдено, код: 404)', 256, 5, '2011-05-06 00:00:27');
ВСТАВЬТЕ В `portal_gm_cron` (`id`, `id_wms`, `error`, `errorno`, `flag`, `time`) ЗНАЧЕНИЯ (2531615, 415, 'Ошибка при загрузке XML-файла. (Не найдено, код: 404)', 256, 5, '2011-05-06 02:48:49');
ВСТАВЬТЕ В `portal_gm_cron` (`id`, `id_wms`, `error`, `errorno`, `flag`, `time`) ЗНАЧЕНИЯ (2532882, 415, 'Ошибка при загрузке XML-файла. (Не найдено, код: 404)', 256, 5, '2011-05-06 05:36:05');
ВСТАВЬТЕ В `portal_gm_cron` (`id`, `id_wms`, `error`, `errorno`, `flag`, `time`) ЗНАЧЕНИЯ (2534150, 415, 'Ошибка при загрузке XML-файла. (Не найдено, код: 404)', 256, 5, '2011-05-06 08:16:10');
ВСТАВЬТЕ В `portal_gm_cron` (`id`, `id_wms`, `error`, `errorno`, `flag`, `time`) ЗНАЧЕНИЯ (2535418, 415, 'Ошибка при загрузке XML-файла. (Не найдено, код: 404)', 256, 5, '2011-05-06 11:04:05');
ВСТАВЬТЕ В `portal_gm_cron` (`id`, `id_wms`, `error`, `errorno`, `flag`, `time`) ЗНАЧЕНИЯ (2536684, 415, 'Ошибка при загрузке XML-файла. (Не найдено, код: 404)', 256, 5, '2011-05-06 13:56:07');
ВСТАВЬТЕ В `portal_gm_cron` (`id`, `id_wms`, `error`, `errorno`, `flag`, `time`) ЗНАЧЕНИЯ (2537951, 415, 'Ошибка при загрузке XML-файла. (Не найдено, код: 404)', 256, 5, '2011-05-06 16:44:20');
ВСТАВЬТЕ В `portal_gm_cron` (`id`, `id_wms`, `error`, `errorno`, `flag`, `time`) ЗНАЧЕНИЯ (2539219, 415, 'Ошибка при загрузке XML-файла. (Не найдено, код: 404)', 256, 5, '2011-05-06 19:24:07');
ВСТАВЬТЕ В `portal_gm_cron` (`id`, `id_wms`, `error`, `errorno`, `flag`, `time`) ЗНАЧЕНИЯ (2540489, 415, 'Ошибка при загрузке XML-файла. (Не найдено, код: 404)', 256, 5, '2011-05-06 21:56:04');
ВСТАВЬТЕ В `portal_gm_cron` (`id`, `id_wms`, `error`, `errorno`, `flag`, `time`) ЗНАЧЕНИЯ (2541758, 415, 'Ошибка при загрузке XML-файла. (Не найдено, код: 404)', 256, 5, '2011-05-07 00:40:04');
ВСТАВЬТЕ В `portal_gm_cron` (`id`, `id_wms`, `error`, `errorno`, `flag`, `time`) ЗНАЧЕНИЯ (2543027, 415, 'Ошибка при загрузке XML-файла. (Не найдено, код: 404)', 256, 5, '2011-05-07 03:24:01');
ВСТАВЬТЕ В `portal_gm_cron` (`id`, `id_wms`, `error`, `errorno`, `flag`, `time`) ЗНАЧЕНИЯ (2544298, 415, 'Ошибка при загрузке XML-файла. (Не найдено, код: 404)', 256, 5, '2011-05-07 06:00:07');
ВСТАВЬТЕ В `portal_gm_cron` (`id`, `id_wms`, `error`, `errorno`, `flag`, `time`) ЗНАЧЕНИЯ (2545566, 415, 'Ошибка при загрузке XML-файла. (Не найдено, код: 404)', 256, 5, '2011-05-07 08:48:05');
ВСТАВЬТЕ В `portal_gm_cron` (`id`, `id_wms`, `error`, `errorno`, `flag`, `time`) ЗНАЧЕНИЯ (2546836, 415, 'Ошибка при загрузке XML-файла. (Не найдено, код: 404)', 256, 5, '2011-05-07 11:24:19');
ВСТАВЬТЕ В `portal_gm_cron` (`id`, `id_wms`, `error`, `errorno`, `flag`, `time`) ЗНАЧЕНИЯ (2548106, 415, 'Ошибка при загрузке XML-файла. (Не найдено, код: 404)', 256, 5, '2011-05-07 14:00:09');
ВСТАВЬТЕ В `portal_gm_cron` (`id`, `id_wms`, `error`, `errorno`, `flag`, `time`) ЗНАЧЕНИЯ (2549374, 415, 'Ошибка при загрузке XML-файла. (Не найдено, код: 404)', 256, 5, '2011-05-07 16:44:04');
ВСТАВЬТЕ В `portal_gm_cron` (`id`, `id_wms`, `error`, `errorno`, `flag`, `time`) ЗНАЧЕНИЯ (2550643, 415, 'Ошибка при загрузке XML-файла. (Не найдено, код: 404)', 256, 5, '2011-05-07 19:24:01');
ВСТАВЬТЕ В `portal_gm_cron` (`id`, `id_wms`, `error`, `errorno`, `flag`, `time`) ЗНАЧЕНИЯ (2551912, 415, 'Ошибка при загрузке XML-файла. (Не найдено, код: 404)', 256, 5, '2011-05-07 22:04:02');
ВСТАВЬТЕ В `portal_gm_cron` (`id`, `id_wms`, `error`, `errorno`, `flag`, `time`) ЗНАЧЕНИЯ (2553181, 415, 'Ошибка при загрузке XML-файла. (Не найдено, код: 404)', 256, 5, '2011-05-08 00:44:04');
ВСТАВЬТЕ В `portal_gm_cron` (`id`, `id_wms`, `error`, `errorno`, `flag`, `time`) ЗНАЧЕНИЯ (2554451, 415, 'Ошибка при загрузке XML-файла. (Не найдено, код: 404)', 256, 5, '2011-05-08 03:20:10');
ВСТАВЬТЕ В `portal_gm_cron` (`id`, `id_wms`, `error`, `errorno`, `flag`, `time`) ЗНАЧЕНИЯ (2555719, 415, 'Ошибка при загрузке XML-файла. (Не найдено, код: 404)', 256, 5, '2011-05-08 06:04:05');
ВСТАВЬТЕ В `portal_gm_cron` (`id`, `id_wms`, `error`, `errorno`, `flag`, `time`) ЗНАЧЕНИЯ (2556987, 415, 'Ошибка при загрузке XML-файла. (Не найдено, код: 404)', 256, 5, '2011-05-08 08:48:05');
ВСТАВЬТЕ В `portal_gm_cron` (`id`, `id_wms`, `error`, `errorno`, `flag`, `time`) ЗНАЧЕНИЯ (2558256, 415, 'Ошибка при загрузке XML-файла. (Не найдено, код: 404)', 256, 5, '2011-05-08 11:28:06');
ВСТАВЬТЕ В `portal_gm_cron` (`id`, `id_wms`, `error`, `errorno`, `flag`, `time`) ЗНАЧЕНИЯ (2559523, 415, 'Ошибка при загрузке XML-файла. (Не найдено, код: 404)', 256, 5, '2011-05-08 14:20:04');
ВСТАВЬТЕ В `portal_gm_cron` (`id`, `id_wms`, `error`, `errorno`, `flag`, `time`) ЗНАЧЕНИЯ (2560791, 415, 'Ошибка при загрузке XML-файла. (Не найдено, код: 404)', 256, 5, '2011-05-08 17:08:04');
ВСТАВЬТЕ В `portal_gm_cron` (`id`, `id_wms`, `error`, `errorno`, `flag`, `time`) ЗНАЧЕНИЯ (2562060, 415, 'Ошибка при загрузке XML-файла. (Не найдено, код: 404)', 256, 5, '2011-05-08 19:48:05');
ВСТАВЬТЕ В `portal_gm_cron` (`id`, `id_wms`, `error`, `errorno`, `flag`, `time`) ЗНАЧЕНИЯ (2563328, 415, 'Ошибка при загрузке XML-файла. (Не найдено, код: 404)', 256, 5, '2011-05-08 22:28:02');
ВСТАВЬТЕ В `portal_gm_cron` (`id`, `id_wms`, `error`, `errorno`, `flag`, `time`) ЗНАЧЕНИЯ (2564598, 415, 'Ошибка при загрузке XML-файла. (Не найдено, код: 404)', 256, 5, '2011-05-09 01:04:39');
ВСТАВИТЬ В `portal_gm_cron` (`id`, `id_wms`, `error`, `errorno`, `flag`, `time`) ЗНАЧЕНИЯ (2531247, 1389, NULL, 0, 5, '2011-05-06 01:36:55');
ВСТАВИТЬ В `portal_gm_cron` (`id`, `id_wms`, `error`, `errorno`, `flag`, `time`) ЗНАЧЕНИЯ (2532514, 1389, NULL, 0, 5, '2011-05-06 04:24:25');
ВСТАВИТЬ В `portal_gm_cron` (`id`, `id_wms`, `error`, `errorno`, `flag`, `time`) ЗНАЧЕНИЯ (2533782, 1389, NULL, 0, 5, '2011-05-06 07:04:47');
ВСТАВИТЬ В `portal_gm_cron` (`id`, `id_wms`, `error`, `errorno`, `flag`, `time`) ЗНАЧЕНИЯ (2535050, 1389, NULL, 0, 5, '2011-05-06 09:48:36');
ВСТАВИТЬ В `portal_gm_cron` (`id`, `id_wms`, `error`, `errorno`, `flag`, `time`) ЗНАЧЕНИЯ (2536316, 1389, NULL, 0, 5, '2011-05-06 12:44:14');
ВСТАВИТЬ В `portal_gm_cron` (`id`, `id_wms`, `error`, `errorno`, `flag`, `time`) ЗНАЧЕНИЯ (2537582, 1389, NULL, 0, 5, '2011-05-06 15:36:12');
ВСТАВИТЬ В `portal_gm_cron` (`id`, `id_wms`, `error`, `errorno`, `flag`, `time`) ЗНАЧЕНИЯ (2538850, 1389, NULL, 0, 5, '2011-05-06 18:16:10');
ВСТАВИТЬ В `portal_gm_cron` (`id`, `id_wms`, `error`, `errorno`, `flag`, `time`) ЗНАЧЕНИЯ (2541389, 1389, NULL, 0, 5, '2011-05-06 23:28:48');
ВСТАВИТЬ В `portal_gm_cron` (`id`, `id_wms`, `error`, `errorno`, `flag`, `time`) ЗНАЧЕНИЯ (2542660, 1389, NULL, 0, 5, '2011-05-07 02:04:43');
ВСТАВИТЬ В `portal_gm_cron` (`id`, `id_wms`, `error`, `errorno`, `flag`, `time`) ЗНАЧЕНИЯ (2543929, 1389, NULL, 0, 5, '2011-05-07 04:48:38');
ВСТАВИТЬ В `portal_gm_cron` (`id`, `id_wms`, `error`, `errorno`, `flag`, `time`) ЗНАЧЕНИЯ (2545198, 1389, NULL, 0, 5, '2011-05-07 07:32:29');
ВСТАВИТЬ В `portal_gm_cron` (`id`, `id_wms`, `error`, `errorno`, `flag`, `time`) ЗНАЧЕНИЯ (2546468, 1389, NULL, 0, 5, '2011-05-07 10:12:55');
ВСТАВИТЬ В `portal_gm_cron` (`id`, `id_wms`, `error`, `errorno`, `flag`, `time`) ЗНАЧЕНИЯ (2547737, 1389, NULL, 0, 5, '2011-05-07 12:52:45');
ВСТАВИТЬ В `portal_gm_cron` (`id`, `id_wms`, `error`, `errorno`, `flag`, `time`) ЗНАЧЕНИЯ (2549006, 1389, NULL, 0, 5, '2011-05-07 15:32:34');
ВСТАВИТЬ В `portal_gm_cron` (`id`, `id_wms`, `error`, `errorno`, `flag`, `time`) ЗНАЧЕНИЯ (2550275, 1389, NULL, 0, 5, '2011-05-07 18:08:02');
ВСТАВИТЬ В `portal_gm_cron` (`id`, `id_wms`, `error`, `errorno`, `flag`, `time`) ЗНАЧЕНИЯ (2551545, 1389, NULL, 0, 5, '2011-05-07 20:48:32');
ВСТАВИТЬ В `portal_gm_cron` (`id`, `id_wms`, `error`, `errorno`, `flag`, `time`) ЗНАЧЕНИЯ (2552813, 1389, NULL, 0, 5, '2011-05-07 23:32:46');
ВСТАВИТЬ В `portal_gm_cron` (`id`, `id_wms`, `error`, `errorno`, `flag`, `time`) ЗНАЧЕНИЯ (2554083, 1389, NULL, 0, 5, '2011-05-08 02:08:56');
ВСТАВИТЬ В `portal_gm_cron` (`id`, `id_wms`, `error`, `errorno`, `flag`, `time`) ЗНАЧЕНИЯ (2555351, 1389, NULL, 0, 5, '2011-05-08 04:52:26');
ВСТАВИТЬ В `portal_gm_cron` (`id`, `id_wms`, `error`, `errorno`, `flag`, `time`) ЗНАЧЕНИЯ (2556621, 1389, NULL, 0, 5, '2011-05-08 07:28:48');
ВСТАВИТЬ В `portal_gm_cron` (`id`, `id_wms`, `error`, `errorno`, `flag`, `time`) ЗНАЧЕНИЯ (2557888, 1389, NULL, 0, 5, '2011-05-08 10:16:33');
ВСТАВИТЬ В `portal_gm_cron` (`id`, `id_wms`, `error`, `errorno`, `flag`, `time`) ЗНАЧЕНИЯ (2559156, 1389, NULL, 0, 5, '2011-05-08 13:00:21');
ВСТАВИТЬ В `portal_gm_cron` (`id`, `id_wms`, `error`, `errorno`, `flag`, `time`) ЗНАЧЕНИЯ (2560423, 1389, NULL, 0, 5, '2011-05-08 15:52:43');
ВСТАВИТЬ В `portal_gm_cron` (`id`, `id_wms`, `error`, `errorno`, `flag`, `time`) ЗНАЧЕНИЯ (2561692, 1389, NULL, 0, 5, '2011-05-08 18:36:16');
ВСТАВИТЬ В `portal_gm_cron` (`id`, `id_wms`, `error`, `errorno`, `flag`, `time`) ЗНАЧЕНИЯ (2562960, 1389, NULL, 0, 5, '2011-05-08 21:16:01');
ВСТАВИТЬ В `portal_gm_cron` (`id`, `id_wms`, `error`, `errorno`, `flag`, `time`) ЗНАЧЕНИЯ (2564229, 1389, NULL, 0, 5, '2011-05-08 23:56:02');
ВСТАВИТЬ В `portal_gm_cron` (`id`, `id_wms`, `error`, `errorno`, `flag`, `time`) ЗНАЧЕНИЯ (2565498, 1389, NULL, 0, 5, '2011-05-09 02:32:19');
ВСТАВИТЬ В `portal_gm_cron` (`id`, `id_wms`, `error`, `errorno`, `flag`, `time`) ЗНАЧЕНИЯ (2566768, 1389, NULL, 0, 5, '2011-05-09 05:08:43');
ВСТАВИТЬ В `portal_gm_cron` (`id`, `id_wms`, `error`, `errorno`, `flag`, `time`) ЗНАЧЕНИЯ (2568037, 1389, NULL, 0, 5, '2011-05-09 07:48:32');
ВСТАВИТЬ В `portal_gm_cron` (`id`, `id_wms`, `error`, `errorno`, `flag`, `time`) ЗНАЧЕНИЯ (2569304, 1389, NULL, 0, 5, '2011-05-09 10:40:46');
ВСТАВИТЬ В `portal_gm_cron` (`id`, `id_wms`, `error`, `errorno`, `flag`, `time`) ЗНАЧЕНИЯ (2570571, 1389, NULL, 0, 5, '2011-05-09 13:28:45');
ВСТАВИТЬ В `portal_gm_cron` (`id`, `id_wms`, `error`, `errorno`, `flag`, `time`) ЗНАЧЕНИЯ (2571838, 1389, NULL, 0, 5, '2011-05-09 16:16:36');
ВСТАВИТЬ В `portal_gm_cron` (`id`, `id_wms`, `error`, `errorno`, `flag`, `time`) ЗНАЧЕНИЯ (2573106, 1389, NULL, 0, 5, '2011-05-09 18:56:10');
ВСТАВИТЬ В `portal_gm_cron` (`id`, `id_wms`, `error`, `errorno`, `flag`, `time`) ЗНАЧЕНИЯ (2574373, 1389, NULL, 0, 5, '2011-05-09 21:40:38');
ВСТАВИТЬ В `portal_gm_cron` (`id`, `id_wms`, `error`, `errorno`, `flag`, `time`) ЗНАЧЕНИЯ (2575640, 1389, NULL, 0, 5, '2011-05-10 00:24:09');
ВСТАВИТЬ В `portal_gm_cron` (`id`, `id_wms`, `error`, `errorno`, `flag`, `time`) ЗНАЧЕНИЯ (2576906, 1389, NULL, 0, 5, '2011-05-10 03:16:30');
ВСТАВИТЬ В `portal_gm_cron` (`id`, `id_wms`, `error`, `errorno`, `flag`, `time`) ЗНАЧЕНИЯ (2578175, 1389, NULL, 0, 5, '2011-05-10 05:52:55');
ВСТАВИТЬ В `portal_gm_cron` (`id`, `id_wms`, `error`, `errorno`, `flag`, `time`) ЗНАЧЕНИЯ (2579443, 1389, NULL, 0, 5, '2011-05-10 08:32:28');
ВСТАВИТЬ В `portal_gm_cron` (`id`, `id_wms`, `error`, `errorno`, `flag`, `time`) ЗНАЧЕНИЯ (2580711, 1389, NULL, 0, 5, '2011-05-10 11:20:34');
ВСТАВИТЬ В `portal_gm_cron` (`id`, `id_wms`, `error`, `errorno`, `flag`, `time`) ЗНАЧЕНИЯ (2581979, 1389, NULL, 0, 5, '2011-05-10 14:00:46');
ВСТАВИТЬ В `portal_gm_cron` (`id`, `id_wms`, `error`, `errorno`, `flag`, `time`) ЗНАЧЕНИЯ (2583239, 1389, NULL, 0, 5, '2011-05-10 16:32:32');
ВСТАВИТЬ В `portal_gm_cron` (`id`, `id_wms`, `error`, `errorno`, `flag`, `time`) ЗНАЧЕНИЯ (2584511, 1389, NULL, 0, 5, '2011-05-10 19:04:14');
ВСТАВИТЬ В `portal_gm_cron` (`id`, `id_wms`, `error`, `errorno`, `flag`, `time`) ЗНАЧЕНИЯ (2585784, 1389, NULL, 0, 5, '2011-05-10 21:29:00');
ВСТАВИТЬ В `portal_gm_cron` (`id`, `id_wms`, `error`, `errorno`, `flag`, `time`) ЗНАЧЕНИЯ (2587056, 1389, NULL, 0, 5, '2011-05-10 23:56:21');
ВСТАВИТЬ В `portal_gm_cron` (`id`, `id_wms`, `error`, `errorno`, `flag`, `time`) ЗНАЧЕНИЯ (2589600, 1389, NULL, 0, 5, '2011-05-11 04:56:32');
ВСТАВИТЬ В `portal_gm_cron` (`id`, `id_wms`, `error`, `errorno`, `flag`, `time`) ЗНАЧЕНИЯ (2590873, 1389, NULL, 0, 5, '2011-05-11 07:20:50');
ВСТАВИТЬ В `portal_gm_cron` (`id`, `id_wms`, `error`, `errorno`, `flag`, `time`) ЗНАЧЕНИЯ (2592143, 1389, NULL, 0, 5, '2011-05-11 10:00:47');
ВСТАВИТЬ В `portal_gm_cron` (`id`, `id_wms`, `error`, `errorno`, `flag`, `time`) ЗНАЧЕНИЯ (2593414, 1389, NULL, 0, 5, '2011-05-11 12:36:19');
ВСТАВИТЬ В `portal_gm_cron` (`id`, `id_wms`, `error`, `errorno`, `flag`, `time`) ЗНАЧЕНИЯ (2594682, 1389, NULL, 0, 5, '2011-05-11 15:28:39');
ВСТАВИТЬ В `portal_gm_cron` (`id`, `id_wms`, `error`, `errorno`, `flag`, `time`) ЗНАЧЕНИЯ (2595953, 1389, NULL, 0, 5, '2011-05-11 18:04:23');
ВСТАВИТЬ В `portal_gm_cron` (`id`, `id_wms`, `error`, `errorno`, `flag`, `time`) ЗНАЧЕНИЯ (2597226, 1389, NULL, 0, 5, '2011-05-11 20:28:09');
ВСТАВИТЬ В `portal_gm_cron` (`id`, `id_wms`, `error`, `errorno`, `flag`, `time`) ЗНАЧЕНИЯ (2598498, 1389, NULL, 0, 5, '2011-05-11 22:56:59');

Комментарии:

1. Связаны ли эти три таблицы каким-либо образом друг с другом? Если да, то используйте ОБЪЕДИНЕНИЯ. Если нет, то используйте ОБЪЕДИНЕНИЕ.

2. Не могли бы вы, пожалуйста, указать, как будет выглядеть ваш желаемый результат.

Ответ №1:

Не уверен, что я точно понимаю, что вы имеете в виду, но я думаю, вы просите, чтобы каждая строка из трех таблиц отображалась как одна, используя все столбцы из каждой таблицы (вводя нули для столбцов из других таблиц) и сортируя все строки в порядке даты (сначала самая последняя).

Используя ваш код в качестве примера (для выбора столбцов даты и фильтров), это должно сделать:

 SELECT o.*
FROM (
(SELECT id_wms, time AS ordered_time, id, error, errorno, flag, NULL AS code, NULL AS subcode, NULL AS id_layer, NULL AS message, NULL AS message_real, NULL AS counter, NULL AS time_first, NULL AS time_last, NULL AS user_id, NULL AS mail_notify, NULL AS mail_period, NULL AS time_cron
FROM
    portal_gm_cron)
UNION ALL
(SELECT id_wms, time_first AS ordered_time, id, NULL AS error, NULL AS errorno, NULL AS flag, code, subcode, id_layer, message, message_real, counter, time_first, time_last, NULL AS user_id, NULL AS mail_notify, NULL AS mail_period, NULL AS time_cron
FROM
    portal_gm_log)
UNION ALL
(SELECT wms_id as id_wms, time AS ordered_time, id, NULL AS error, NULL AS errorno, NULL AS flag, NULL AS code, NULL AS subcode, NULL AS id_layer, NULL AS message, NULL AS message_real, NULL AS counter, NULL AS time_first, NULL AS time_last, user_id, mail_notify, mail_period, time_cron
FROM
    portal_gm_provide
WHERE
    user_id = 1) 
) AS o
ORDER BY ordered_time DESC
  

Вы можете изменить порядок столбцов и выбор столбца даты в соответствии с вашими потребностями.