powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Экспорт данных из Mysql в 1 c
25 сообщений из 56, страница 2 из 3
Экспорт данных из Mysql в 1 c
    #39208147
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
olegon7
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
from 
kartab left join (select t1.yearmon,
t1.lic_sch,
kartkvgd.data_new
from 
(select MAX(kartkvgd.yearmon) yearmon,
kartkvgd.lic_sch
from 
kartkvgd
where kartkvgd.del=0
GROUP BY kartkvgd.lic_sch) t1 inner join kartkvgd
on t1.lic_sch=kartkvgd.lic_sch) t2
on kartab.lic_sch=t2.lic_sch
where kartab.del=0

жесть адовая... а если так?
Код: sql
1.
2.
3.
4.
5.
6.
7.
select
 ...
 ,(select max(yearmon) from kartkvgd where lic_sch=k.lic_sch) as yearmon
from 
kartab k
left join kartkvgd g on l.lic_sch=g.lic_sch
where k.del=0

А лучше покажите explain этого запроса здесь.
...
Рейтинг: 0 / 0
Экспорт данных из Mysql в 1 c
    #39208150
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дык у него нету индекса kartkvgd(lic_sch, yearmon), всё одно тухло будет. И в среднем по 23 записи в группе...
...
Рейтинг: 0 / 0
Экспорт данных из Mysql в 1 c
    #39208384
olegon7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina,

новые таблички они поменьше будут

картаб_аскуэ

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
kartab_askue	CREATE TABLE `kartab_askue` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `lic_sch` varchar(16) NOT NULL DEFAULT '',
  `fam` varchar(64) DEFAULT NULL,
  `name` varchar(64) DEFAULT NULL,
  `otch` varchar(64) DEFAULT NULL,
  `cod_tn` varchar(8) DEFAULT NULL,
  `cod_st` varchar(8) DEFAULT NULL,
  `home` varchar(10) DEFAULT NULL,
  `kv` varchar(10) DEFAULT NULL,
  `kom` int(5) DEFAULT NULL,
  `chlenov` int(5) DEFAULT NULL,
  `telef` varchar(16) DEFAULT NULL,
  `cod_kat` varchar(16) DEFAULT NULL,
  `cod_tpr` varchar(16) DEFAULT NULL,
  `schlamp` int(1) DEFAULT NULL,
  `rabot` int(1) DEFAULT NULL,
  `shifr` varchar(15) DEFAULT NULL,
  `cod_pd` varchar(10) DEFAULT NULL,
  `koment` varchar(128) DEFAULT NULL,
  `plit` int(1) DEFAULT NULL,
  `yearmon` date DEFAULT NULL,
  `errsum` int(11) DEFAULT NULL,
  `errsumn` int(11) DEFAULT NULL,
  `summa_kn` int(11) DEFAULT NULL,
  `summa_kc` int(11) DEFAULT NULL,
  `cod_con` varchar(16) DEFAULT NULL,
  `srednee` int(11) DEFAULT NULL,
  `mesyac` int(11) DEFAULT NULL,
  `date_otkpl` date DEFAULT NULL,
  `date_otkfk` date DEFAULT NULL,
  `nomer_tp` varchar(16) DEFAULT NULL,
  `fider` varchar(11) DEFAULT NULL,
  `nomer_opor` varchar(16) DEFAULT NULL,
  `smena` varchar(16) DEFAULT NULL,
  `data_kon` int(11) DEFAULT NULL,
  `date_kon` date DEFAULT NULL,
  `familiya` varchar(64) DEFAULT NULL,
  `pr_opl` varchar(8) DEFAULT NULL,
  `akt` int(4) DEFAULT NULL,
  `cod_pred` varchar(8) DEFAULT NULL,
  `date_zap` date DEFAULT NULL,
  `lgota` varchar(4) DEFAULT NULL,
  `procent` varchar(11) DEFAULT NULL,
  `date_dog` date DEFAULT NULL,
  `cod_isp` varchar(8) DEFAULT NULL,
  `rachpok` int(10) DEFAULT NULL,
  `pokazanie` int(11) DEFAULT NULL,
  `dkont` decimal(7,2) DEFAULT NULL,
  `date_r` date DEFAULT NULL,
  `date_lgt` date DEFAULT NULL,
  `reg_nom` varchar(16) DEFAULT NULL,
  `cod_tp` varchar(6) DEFAULT NULL,
  `date_pr` date DEFAULT NULL,
  `priravn` int(6) DEFAULT NULL,
  `dog` varchar(8) DEFAULT NULL,
  `penya_t` int(11) DEFAULT NULL,
  `askue` int(1) DEFAULT NULL,
  `summa_vd` int(16) DEFAULT NULL,
  `cod_vid` int(4) DEFAULT NULL,
  `lg_kvt` int(11) DEFAULT NULL,
  `errsumv` int(11) DEFAULT NULL,
  `kvt_mes` int(11) DEFAULT NULL,
  `summa_mes` int(16) DEFAULT NULL,
  `old_lgt` int(1) DEFAULT NULL,
  `deti` int(1) DEFAULT NULL,
  `pr_erip` int(1) DEFAULT NULL,
  `cod_alg` varchar(11) DEFAULT NULL,
  `n_sch` varchar(32) DEFAULT NULL,
  `cod_tsch` varchar(16) DEFAULT NULL,
  `fider_code` varchar(32) DEFAULT NULL,
  `tp_code` varchar(32) DEFAULT NULL,
  `line_code` varchar(32) DEFAULT NULL,
  `del` int(1) DEFAULT NULL,
  `base` varchar(16) DEFAULT NULL,
  PRIMARY KEY (`id`,`lic_sch`),
  UNIQUE KEY `id` (`id`),
  UNIQUE KEY `lic_sch` (`lic_sch`) USING BTREE,
  KEY `base` (`base`),
  KEY `n_tsch` (`n_sch`),
  KEY `cod_tsch` (`cod_tsch`)
) ENGINE=MyISAM AUTO_INCREMENT=48438 DEFAULT CHARSET=utf8





таблица картквгд_аскуэ

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
kartab_askue	CREATE TABLE `kartab_askue` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `lic_sch` varchar(16) NOT NULL DEFAULT '',
  `fam` varchar(64) DEFAULT NULL,
  `name` varchar(64) DEFAULT NULL,
  `otch` varchar(64) DEFAULT NULL,
  `cod_tn` varchar(8) DEFAULT NULL,
  `cod_st` varchar(8) DEFAULT NULL,
  `home` varchar(10) DEFAULT NULL,
  `kv` varchar(10) DEFAULT NULL,
  `kom` int(5) DEFAULT NULL,
  `chlenov` int(5) DEFAULT NULL,
  `telef` varchar(16) DEFAULT NULL,
  `cod_kat` varchar(16) DEFAULT NULL,
  `cod_tpr` varchar(16) DEFAULT NULL,
  `schlamp` int(1) DEFAULT NULL,
  `rabot` int(1) DEFAULT NULL,
  `shifr` varchar(15) DEFAULT NULL,
  `cod_pd` varchar(10) DEFAULT NULL,
  `koment` varchar(128) DEFAULT NULL,
  `plit` int(1) DEFAULT NULL,
  `yearmon` date DEFAULT NULL,
  `errsum` int(11) DEFAULT NULL,
  `errsumn` int(11) DEFAULT NULL,
  `summa_kn` int(11) DEFAULT NULL,
  `summa_kc` int(11) DEFAULT NULL,
  `cod_con` varchar(16) DEFAULT NULL,
  `srednee` int(11) DEFAULT NULL,
  `mesyac` int(11) DEFAULT NULL,
  `date_otkpl` date DEFAULT NULL,
  `date_otkfk` date DEFAULT NULL,
  `nomer_tp` varchar(16) DEFAULT NULL,
  `fider` varchar(11) DEFAULT NULL,
  `nomer_opor` varchar(16) DEFAULT NULL,
  `smena` varchar(16) DEFAULT NULL,
  `data_kon` int(11) DEFAULT NULL,
  `date_kon` date DEFAULT NULL,
  `familiya` varchar(64) DEFAULT NULL,
  `pr_opl` varchar(8) DEFAULT NULL,
  `akt` int(4) DEFAULT NULL,
  `cod_pred` varchar(8) DEFAULT NULL,
  `date_zap` date DEFAULT NULL,
  `lgota` varchar(4) DEFAULT NULL,
  `procent` varchar(11) DEFAULT NULL,
  `date_dog` date DEFAULT NULL,
  `cod_isp` varchar(8) DEFAULT NULL,
  `rachpok` int(10) DEFAULT NULL,
  `pokazanie` int(11) DEFAULT NULL,
  `dkont` decimal(7,2) DEFAULT NULL,
  `date_r` date DEFAULT NULL,
  `date_lgt` date DEFAULT NULL,
  `reg_nom` varchar(16) DEFAULT NULL,
  `cod_tp` varchar(6) DEFAULT NULL,
  `date_pr` date DEFAULT NULL,
  `priravn` int(6) DEFAULT NULL,
  `dog` varchar(8) DEFAULT NULL,
  `penya_t` int(11) DEFAULT NULL,
  `askue` int(1) DEFAULT NULL,
  `summa_vd` int(16) DEFAULT NULL,
  `cod_vid` int(4) DEFAULT NULL,
  `lg_kvt` int(11) DEFAULT NULL,
  `errsumv` int(11) DEFAULT NULL,
  `kvt_mes` int(11) DEFAULT NULL,
  `summa_mes` int(16) DEFAULT NULL,
  `old_lgt` int(1) DEFAULT NULL,
  `deti` int(1) DEFAULT NULL,
  `pr_erip` int(1) DEFAULT NULL,
  `cod_alg` varchar(11) DEFAULT NULL,
  `n_sch` varchar(32) DEFAULT NULL,
  `cod_tsch` varchar(16) DEFAULT NULL,
  `fider_code` varchar(32) DEFAULT NULL,
  `tp_code` varchar(32) DEFAULT NULL,
  `line_code` varchar(32) DEFAULT NULL,
  `del` int(1) DEFAULT NULL,
  `base` varchar(16) DEFAULT NULL,
  PRIMARY KEY (`id`,`lic_sch`),
  UNIQUE KEY `id` (`id`),
  UNIQUE KEY `lic_sch` (`lic_sch`) USING BTREE,
  KEY `base` (`base`),
  KEY `n_tsch` (`n_sch`),
  KEY `cod_tsch` (`cod_tsch`)
) ENGINE=MyISAM AUTO_INCREMENT=48438 DEFAULT CHARSET=utf8
...
Рейтинг: 0 / 0
Экспорт данных из Mysql в 1 c
    #39208387
olegon7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
новый запрос

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
select t2.yearmon,
t2.lic_sch,
t2.data_new,
kartab_askue.lic_sch,
kartab_askue.data_kon,
kartab_askue.date_kon,
kartab_askue.base,
kartab_askue.askue 
from 
kartab_askue left join (select t1.yearmon,
t1.lic_sch,
kartkvgd_askue.data_new
from 
(select MAX(kartkvgd_askue.yearmon) yearmon,
kartkvgd_askue.lic_sch
from 
kartkvgd_askue
where kartkvgd_askue.del=0
GROUP BY kartkvgd_askue.lic_sch) t1 inner join kartkvgd_askue
on t1.lic_sch=kartkvgd_askue.lic_sch) t2
on kartab_askue.lic_sch=t2.lic_sch
where kartab_askue.del=0
...
Рейтинг: 0 / 0
Экспорт данных из Mysql в 1 c
    #39208388
olegon7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
через explain

Код: sql
1.
2.
3.
4.
5.
1	PRIMARY	kartab_askue	ALL					48437	Using where
1	PRIMARY	<derived2>	ALL					117982	
2	DERIVED	<derived3>	ALL					44534	
2	DERIVED	kartkvgd_askue	ref	lic_sch	lic_sch	51	t1.lic_sch	10	Using where
3	DERIVED	kartkvgd_askue	ALL	del				117982	Using where; Using temporary; Using filesort
...
Рейтинг: 0 / 0
Экспорт данных из Mysql в 1 c
    #39208436
olegon7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tanglirolegon7
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
from 
kartab left join (select t1.yearmon,
t1.lic_sch,
kartkvgd.data_new
from 
(select MAX(kartkvgd.yearmon) yearmon,
kartkvgd.lic_sch
from 
kartkvgd
where kartkvgd.del=0
GROUP BY kartkvgd.lic_sch) t1 inner join kartkvgd
on t1.lic_sch=kartkvgd.lic_sch) t2
on kartab.lic_sch=t2.lic_sch
where kartab.del=0

жесть адовая... а если так?
Код: sql
1.
2.
3.
4.
5.
6.
7.
select
 ...
 ,(select max(yearmon) from kartkvgd where lic_sch=k.lic_sch) as yearmon
from 
kartab k
left join kartkvgd g on l.lic_sch=g.lic_sch
where k.del=0

А лучше покажите explain этого запроса здесь.

хорошо а как вытянуть остальные поля таблицы karkvgd такие как data_new?
...
Рейтинг: 0 / 0
Экспорт данных из Mysql в 1 c
    #39208480
olegon7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tanglir,

написал запрос по вашей рекомендации

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
select
kartab_askue.lic_sch,
kartab_askue.data_kon,
kartab_askue.date_kon,
kartab_askue.base,
(select max(yearmon) from kartkvgd_askue where lic_sch=kartkvgd_askue.lic_sch) as yearmon
from 
kartab_askue 
left join kartkvgd_askue  on kartab_askue.lic_sch=kartkvgd_askue.lic_sch
where kartab_askue.del=0



запрос конечно выполнился быстрее
Но во-первых он дублирует записи
лицевой счет должен быть уникальным (в картабе он уникальный)
во-вторых как вытащить поле data_new
...
Рейтинг: 0 / 0
Экспорт данных из Mysql в 1 c
    #39208874
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вам для каждого счёта надо выбрать последнюю дату и относящееся к ней значение data_new?
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
select
kartab_askue.lic_sch,
kartab_askue.data_kon,
kartab_askue.date_kon,
kartab_askue.base,
(select yearmon from kartkvgd_askue where lic_sch=kartkvgd_askue.lic_sch order by yearmon desc limit 1) as yearmon,
(select data_new from kartkvgd_askue where lic_sch=kartkvgd_askue.lic_sch order by yearmon desc limit 1) as data_new
from 
kartab_askue 
left join kartkvgd_askue  on kartab_askue.lic_sch=kartkvgd_askue.lic_sch
where kartab_askue.del=0

И сделайте всё-таки индекс на (lic_sch,yearmon), если есть возможность.
...
Рейтинг: 0 / 0
Экспорт данных из Mysql в 1 c
    #39208909
olegon7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tanglir,
Для каждого счета последнюю оплату , но учитывайте что последние оплаты для каждого счета разные, и привязанную к ней оплату data_new. И еще в картабе хранятся lic_sch уникальные а в картвгд нет, т е по сути там хранятся оплаты абонентов за 3 года!
...
Рейтинг: 0 / 0
Экспорт данных из Mysql в 1 c
    #39208910
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
olegon7но учитывайте чтоНу кагбэ вчитайтесь в запрос, там это учтено. Правда, если у вас в "последнюю" дату могут быть две оплаты , то ой.
...
Рейтинг: 0 / 0
Экспорт данных из Mysql в 1 c
    #39209815
olegon7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tanglir,

запрос вернул более 120 тыс ,что удивительно все записи ермон одинаковые(такого быть не может что бы все лплатитлт в один день)!
хотя в картабе 50 тыс
это говорит о том что соединять надо не только по лиц счету а и по дате ермон...поэтому исправляю
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
select
kartab_askue.lic_sch,
kartab_askue.data_kon,
kartab_askue.date_kon,
kartab_askue.base,
(select yearmon from kartkvgd_askue where lic_sch=kartkvgd_askue.lic_sch AND yearmon=kartkvgd_askue.yearmon order by yearmon desc limit 1) as yearmon,
(select data_new from kartkvgd_askue where lic_sch=kartkvgd_askue.lic_sch AND yearmon=kartkvgd_askue.yearmon order by yearmon desc limit 1) as data_new
from 
kartab_askue 
left join kartkvgd_askue  on kartab_askue.lic_sch=kartkvgd_askue.lic_sch
where kartab_askue.del=0


В запросе все равно что не так поля yearmon и data_new заполнены одинаковыми значениями, хотя должны быть разные
...
Рейтинг: 0 / 0
Экспорт данных из Mysql в 1 c
    #39209859
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
olegon7В запросе все равно что не так поля yearmon и data_new заполнены одинаковыми значениямитак потому что берутся они из одной и той же записи Глаз у меня замылился, когда писал, а вы, похоже, вообще не поняли, что запрос делает.
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
select
kartab_askue.lic_sch,
kartab_askue.data_kon,
kartab_askue.date_kon,
kartab_askue.base,
(select yearmon from kartkvgd_askue where lic_sch=kartab_askue.lic_sch order by yearmon desc limit 1) as yearmon,
(select data_new from kartkvgd_askue where lic_sch=kartab_askue.lic_sch order by yearmon desc limit 1) as data_new
from 
kartab_askue 
where kartab_askue.del=0

Ну и olegon7запрос вернул более 120 тыс потому что в нём оставался уже ненужный джойн с картквгд. Странно, что больше не вернул.
...
Рейтинг: 0 / 0
Экспорт данных из Mysql в 1 c
    #39209861
olegon7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tanglir,

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
select t2.yearmon,
t2.lic_sch,
t2.data_new,
kartab_askue.lic_sch,
kartab_askue.data_kon,
kartab_askue.date_kon,
kartab_askue.base 
from 
kartab_askue RIGHT JOIN (select t1.yearmon,
t1.lic_sch,
kartkvgd_askue.data_new
from 
(select MAX(kartkvgd_askue.yearmon) yearmon,
kartkvgd_askue.lic_sch
from 
kartkvgd_askue
where kartkvgd_askue.del=0
GROUP BY kartkvgd_askue.lic_sch) t1 inner join kartkvgd_askue
on t1.lic_sch=kartkvgd_askue.lic_sch and t1.yearmon=kartkvgd_askue.yearmon) t2
on kartab_askue.lic_sch=t2.lic_sch
where kartab_askue.del=0



этот запрос выполняется за 9 секунд
...
Рейтинг: 0 / 0
Экспорт данных из Mysql в 1 c
    #39209888
olegon7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tanglir,

вы когда так соединяете вы получаете избыточные записи
Код: sql
1.
select yearmon from kartkvgd_askue where lic_sch=kartab_askue.lic_sch order by yearmon desc limit 1



я жк писал lic_sch уникален в картаб но не в картвгд! поэтому соединять надо еще и по ермону

и тогда строить индекс составной lic_sch_ya_yearmon
...
Рейтинг: 0 / 0
Экспорт данных из Mysql в 1 c
    #39209913
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
olegon7вы когда так соединяете вы получаете избыточные записииногда лучше жевать, чем говорить (с)
...
Рейтинг: 0 / 0
Экспорт данных из Mysql в 1 c
    #39209915
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
olegon7и тогда строить индекс составной lic_sch_ya_yearmonАкина вам это уже предлагал.
...
Рейтинг: 0 / 0
Экспорт данных из Mysql в 1 c
    #39209935
olegon7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tanglir,

еще один написал запрос он куда проще
и выполняется быстрее
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
select t1.yearmon,
t1.lic_sch,
t1.data_new,
kartab_askue.lic_sch,
kartab_askue.data_kon,
kartab_askue.date_kon,
kartab_askue.base
from 
kartab_askue RIGHT JOIN (select kartkvgd_askue.yearmon,
kartkvgd_askue.lic_sch,
kartkvgd_askue.data_new
from 
kartkvgd_askue
where kartkvgd_askue.del=0
and kartkvgd_askue.yearmon BETWEEN "2016-02-01" and "2016-02-31")t1
 
on kartab_askue.lic_sch=t1.lic_sch
where kartab_askue.del=0
ORDER BY t1.lic_sch
...
Рейтинг: 0 / 0
Экспорт данных из Mysql в 1 c
    #39209939
olegon7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
и тогда учитываются даже те записи когда ермон повторяется

уважаемый tanglir
объяните почему правое соединение быстрее работает чем левое
...
Рейтинг: 0 / 0
Экспорт данных из Mysql в 1 c
    #39209953
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
olegon7,

при левом соединении сервер идёт по таблице лиц.счетов и ищет каждому соответствие в результате подзапроса. Поскольку на этом результате нет индексов, скорость немного предсказуема.
Ваш правый джойн есть не что иное как внутренний джойн (читать секцию where до просветления). Тут сервер имеет право выбирать, какой набор дынных делать ведущим, и естественно выбирает ведущим подзапрос. При этом поиск в таблице счетов производится по индексу, что, очевидно, на порядки быстрее, чем в предыдущем варианте. Впрочем, даже если бы это был честный правый джойн, результат остался бы тем же - скан подзапроса, поиск в счетах по индексу.
...
Рейтинг: 0 / 0
Экспорт данных из Mysql в 1 c
    #39209958
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЗЫ. У счёта может быть максимум одна операция оплаты за календарный месяц?
...
Рейтинг: 0 / 0
Экспорт данных из Mysql в 1 c
    #39210104
olegon7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tanglir,

ну сне все таки надо делать левое соединение
т. е . ведущая таблица картаб - должны все записи попасть , из картвдг только те которые совпадают по лиц счету
...
Рейтинг: 0 / 0
Экспорт данных из Mysql в 1 c
    #39210132
olegon7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
как сделать запрос что бы скорость была бы такой же но при этом ведущая таблица была бы картаб,
я так понимаю проиндексировать
...
Рейтинг: 0 / 0
Экспорт данных из Mysql в 1 c
    #39210320
olegon7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tanglir,

написал запрос
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
SELECT t3.lic_sch,
t3.data_kon,
t3.date_kon,
t3.base,
t2.lic_sch,
t2.data_new,
t2.yearmon 
from
(SELECT kartab_askue.lic_sch,
kartab_askue.data_kon,
kartab_askue.date_kon,
kartab_askue.base 
from kartab_askue where kartab_askue.del=0) As t3 LEFT OUTER JOIN
(select t1.yearmon,
t1.lic_sch,
kartkvgd_askue.data_new
from 
(select MAX(kartkvgd_askue.yearmon) yearmon,
kartkvgd_askue.lic_sch
from 
kartkvgd_askue
where kartkvgd_askue.del=0
GROUP BY kartkvgd_askue.lic_sch) t1 inner join kartkvgd_askue
on t1.lic_sch=kartkvgd_askue.lic_sch and t1.yearmon=kartkvgd_askue.yearmon ) As t2
ON t3.lic_sch=t2.lic_sch



по сути добавил еще один вложенный(таблица картаб т3) чтобы проиндексировалась.
но запрос все равно выполняется долговато - 25 минут(
...
Рейтинг: 0 / 0
Экспорт данных из Mysql в 1 c
    #39210714
olegon7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tanglir,

могу ли я этот запрос разложить на подзапросы и запихнуть во вьюхи и сохранить на сервере?

а потом через 1 с главную вьюху вызывать?
...
Рейтинг: 0 / 0
Экспорт данных из Mysql в 1 c
    #39210920
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
olegon7,

с вью в мускле всё очень печально. Всё-таки чем вам этот 19026405 вариант не подошёл?
...
Рейтинг: 0 / 0
25 сообщений из 56, страница 2 из 3
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Экспорт данных из Mysql в 1 c
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]