Гость
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Помогите с SQl запросом, мой вариант не самый оптимальный / 3 сообщений из 3, страница 1 из 1
26.10.2019, 13:36
    #39881866
Fine
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с SQl запросом, мой вариант не самый оптимальный
table1
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
					
id	|	pole1		|id_zakaza	|
--------------------------------------------------	
1	|	znachenie1	|	null	|
2	|	znachenie2	|	null	|
3	|	znachenie3	|	999	|
4	|	znachenie4	|	888	|
5	|	znachenie5	|	null	|
6	|	znachenie6	|	777	|


и table2
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
		
id	|	id_zakaza	|naimenovanie	| summa
--------------------------------------------------------	
1	|	999		|naimenovanie1	|100	|
2	|	999		|naimenovanie2	|300	|
3	|	777		|naimenovanie3	|700	|
4	|	888		|naimenovanie4	|400	|
5	|	888		|naimenovanie5	|500	|
6	|	888		|naimenovanie6	|200	|


Результат должен быть
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
					
id	|	pole1		|kol_vo|	last_sum
---------------------------------------------------------	
1	|	znachenie1	|null	|	null	|
2	|	znachenie2	|null	|	null	|
3	|	znachenie3	|2	|	300	|
4	|	znachenie4	|3	|	200	|
5	|	znachenie5	|null	|	null	|
6	|	znachenie6	|1	|	700	|



то есть количество соответствующих записей из table2 и последняя сумма.
У меня такое решение, но думаю это не самое оптимальное
Код: plsql
1.
2.
3.
4.
SELECT  *,
 (select count(*) from table2 where table2.id_zakaza=table1.id_zakaza and table1.id_zakaza >0 group by id_zakaza ) as kol_vo,
 (select summa from table2 where table2.id_zakaza=table1.id_zakaza and table1.id_zakaza>0 order by id DESC limit 1) as last_sum 
FROM table1 
...
Рейтинг: 0 / 0
26.10.2019, 20:56
    #39881949
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с SQl запросом, мой вариант не самый оптимальный
Сформулируйте алгоритм получения такого ответа из таких исходных. Причём так, чтобы не осталось НИ ОДНОГО момента, требующего дополнительных пояснений.
...
Рейтинг: 0 / 0
01.11.2019, 07:03
    #39883946
L_I_IG
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с SQl запросом, мой вариант не самый оптимальный
Код: sql
1.
2.
3.
4.
5.
6.
select table1.id, table1.pole1, gt2.kol_vo, table2.summa as last_sum 
from table1 
left join 
(select id_zakaza, count(id) as kol_vo, max(id) as last_id from table2 group by id_zakaza) gt2 
on table1.id_zakaza = gt2.id_zakaza 
left join table2 on gt2.last_id = table2.id order by table1.id;
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Помогите с SQl запросом, мой вариант не самый оптимальный / 3 сообщений из 3, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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