powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Помогите применить запрос к всем имеющимся таблицам в базе.
18 сообщений из 18, страница 1 из 1
Помогите применить запрос к всем имеющимся таблицам в базе.
    #39966486
Tonny96
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, покажите пожалуйста решение. Есть запрос:

Код: plsql
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.
SELECT cc.rank_cmd, cc.value_cmd_time, cc.rank_ct, cc.value_ct_time, cc.rank_t, cc.value_t_time FROM 
(
	SELECT @i:=@i+1 as rank_cmd, value_cmd_time, rank_ct, value_ct_time, rank_t, value_t_time, steamid FROM 
	(
		SELECT * FROM 
		(
			SELECT value_cmd_time, @j:=@j+1 as rank_ct, value_ct_time, rank_t, value_t_time, steamid FROM
			(
				SELECT * FROM 
				(
					SELECT value_cmd_time, value_ct_time, @k:=@k+1 as rank_t, value_t_time, c.steamid FROM
					(	
						SELECT steamid, SUM(cmd_time) value_cmd_time, SUM(ct_time) value_ct_time, SUM(t_time) value_t_time
						FROM `table1`
                                                WHERE `start` >= 0 AND 1567774177 >= `end` 
						GROUP BY steamid
						ORDER BY 4 DESC
					) c,(select @i:=0, @j:=0, @k:=0) AS z 
				) c2
					ORDER BY c2.value_ct_time DESC
			) c3
		) c4
			ORDER BY c4.value_cmd_time DESC
	) c5
) cc
WHERE cc.steamid='[U:1:54634231]'



Этот запрос применяется к таблице table1, в реальности таких таблиц у меня 3 и мне нужно сделать эту операцию (применить запрос) к всем таблицам базы и получить общий рейтинг и значения (как делает этот запрос по отношени к 1 таблице table1)

Спасибо за внимание.
...
Рейтинг: 0 / 0
Помогите применить запрос к всем имеющимся таблицам в базе.
    #39966523
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Рисуешь три копии как три подзапроса, во внешнем запросе собираешь воедино. При таком уровне вложенности ещё один уже ни на что не влияет...
...
Рейтинг: 0 / 0
Помогите применить запрос к всем имеющимся таблицам в базе.
    #39966535
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сумрачный гений писал запрос сей...
Особенно последняя строчка умиляет.
...
Рейтинг: 0 / 0
Помогите применить запрос к всем имеющимся таблицам в базе.
    #39966573
Tonny96
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
оооо какие речи, ну господа предложите тогда альтернативу? на слабо не беру но уж сильно вы самоуверенно критикуете, а решения вопроса от вас я так и не увидел.

PS. Если могёте работать только ртом то вам в соседний форум.
...
Рейтинг: 0 / 0
Помогите применить запрос к всем имеющимся таблицам в базе.
    #39966579
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tonny96,

Версия MySQL какая?
...
Рейтинг: 0 / 0
Помогите применить запрос к всем имеющимся таблицам в базе.
    #39966614
Tonny96
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoft,

Тип сервера: MariaDB
Версия сервера: 10.1.43-MariaDB-1~xenial - mariadb.org binary distribution
...
Рейтинг: 0 / 0
Помогите применить запрос к всем имеющимся таблицам в базе.
    #39966615
Tonny96
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoft,
mysql Ver 15.1 Distrib 10.1.43-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2
...
Рейтинг: 0 / 0
Помогите применить запрос к всем имеющимся таблицам в базе.
    #39966617
Tonny96
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
Помогите применить запрос к всем имеющимся таблицам в базе.
    #39966625
mini.weblab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tonny96,
предлагаю альтернативу: использовать LEFT JOIN вместо вложенных запросов
...
Рейтинг: 0 / 0
Помогите применить запрос к всем имеющимся таблицам в базе.
    #39966635
Tonny96
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mini.weblab,

Напишите пожалуйста запрос как вы это видите! Спасибо за помощь.
...
Рейтинг: 0 / 0
Помогите применить запрос к всем имеющимся таблицам в базе.
    #39966636
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mini.weblab
Tonny96,
предлагаю альтернативу: использовать LEFT JOIN вместо вложенных запросов
А что с чем джойнить? таблица-то одна всего.
Надо посмотреть насчет аналитических функций, но мне пока некогда посмотреть, есть ли они в конкретной версии MariaDB.
...
Рейтинг: 0 / 0
Помогите применить запрос к всем имеющимся таблицам в базе.
    #39966641
Tonny96
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Народ тема весит уже целый день, подкиньте пожалуйста готовое решение епрст(
...
Рейтинг: 0 / 0
Помогите применить запрос к всем имеющимся таблицам в базе.
    #39966661
mini.weblab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoft, Tonny96

посмотрела MySQL там есть функции
1) RANK (то что нужно было сделать)

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
CREATE TABLE t (
    val INT
);

INSERT INTO t(val)
VALUES(1),(2),(2),(3),(4),(4),(5);

SELECT
    val,
    RANK() OVER (
        ORDER BY val
    ) my_rank
FROM
    t;


https://www.mysqltutorial.org/mysql-window-functions/mysql-rank-function/

2) ROW NUMBER (то что пробовали сделать в примере ТС)
https://www.mysqltutorial.org/mysql-window-functions/mysql-row_number-function/

3) вопрос вдогонку: что за данные в двух других таблицах? от этого будет зависеть как объединять таблицы.
...
Рейтинг: 0 / 0
Помогите применить запрос к всем имеющимся таблицам в базе.
    #39966667
Tonny96
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mini.weblab, Структура в тех таблицах точно такая-же как и в этой, просто те таблица от других серверов, я в свое время не додумался что можно было создать отдельное поле 'server' и поэтому информация с каждого сервера пишется в отдельную таблицу.. менять архитектуру базы данных уже не с руки т.к очень много кода написано именно пот текущуюю архитектуру... признаюсь честно я не силен в sql запросах и даже этот запрос мне дался крайне сложно и в основном методом тыка.. от вас жду готового решения, надеюсь на ваше понимание.
...
Рейтинг: 0 / 0
Помогите применить запрос к всем имеющимся таблицам в базе.
    #39966668
Tonny96
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mini.weblab,

Прикреплю табличку.
...
Рейтинг: 0 / 0
Помогите применить запрос к всем имеющимся таблицам в базе.
    #39966673
mini.weblab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
как вариант объединения таблиц напрашивается UNION,
но если steamid в таблицах не согласован, то этот вариант не пройдет

https://www.mysqltutorial.org/?s=UNION
...
Рейтинг: 0 / 0
Помогите применить запрос к всем имеющимся таблицам в базе.
    #39966683
Tonny96
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mini.weblab,

от вас жду готового решения, надеюсь на ваше понимание.
...
Рейтинг: 0 / 0
Помогите применить запрос к всем имеющимся таблицам в базе.
    #39966706
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторотдельное поле 'server' и поэтому информация с каждого сервера пишется в отдельную таблицу.
добавляйте "server" в запрос как угодно
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
...
SELECT srv1 as SRV, steamid, SUM(cmd_time) value_cmd_time, SUM(ct_time) value_ct_time, SUM(t_time) value_t_time
						FROM `table1`
...
UNION ALL
SELECT srv2 as SRV, steamid, SUM(cmd_time) value_cmd_time, SUM(ct_time) value_ct_time, SUM(t_time) value_t_time
						FROM `table2`
...
UNION ALL
...

еще вчера решение озвучили
или просто сливайте UNION ALL без "отметки" SRV
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Помогите применить запрос к всем имеющимся таблицам в базе.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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