powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Несколько SELECT
10 сообщений из 10, страница 1 из 1
Несколько SELECT
    #38996892
CorteZ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброе времени суток.

Столкнулся с проблемой что запрос мой не работает должным образом.

http://i11.pixs.ru/storage/1/7/4/Bezimyanni_5435861_17866174.png
Без функции MAX() у меня не выводит результат.
Не пойму почему без этой функции работать не хочет и как решить проблему.

Есть ещё одно...
http://i11.pixs.ru/storage/2/0/9/Bezimyanni_6900804_17866209.png
Код: sql
1.
2.
3.
4.
5.
	(
		SELECT MAX(`char_name`)
			FROM `characters`, `clan_subpledges`
				WHERE characters.obj_Id=clan_subpledges.leader_id
		)	AS `char_name`


Результат "char_name" возвращает мне не каждый результат, а только последний во всех SELECT'ах.

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
SELECT `clan_id`, `clan_level`, `hasCastle`, `reputation_score`, 

		(
		SELECT MAX(`name`)
			FROM `clan_subpledges`
				WHERE clan_subpledges.clan_id=clan_data.clan_id
		) AS `clanName`,

		
		(
		SELECT MAX(`char_name`)
			FROM `characters`, `clan_subpledges`
				WHERE characters.obj_Id=clan_subpledges.leader_id
		)	AS `char_name`
		
		
		FROM `clan_data` 
	ORDER BY `reputation_score` DESC
LIMIT 30;
...
Рейтинг: 0 / 0
Несколько SELECT
    #38996937
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CorteZ http://i11.pixs.ru/storage/1/7/4/Bezimyanni_5435861_17866174.png
Без функции MAX() у меня не выводит результат.
Не пойму почему без этой функции работать не хочет и как решить проблему.Вероятно, потому что в таблице clan_subpledges более одной записи для какого-то значения clan_id.
CorteZне каждый результат, а только последнийА это я вообще не понял.

И постарайтесь показывать запросы текстом с использованием специального тэга SRC. Иначе ваш пост трудно читать.
...
Рейтинг: 0 / 0
Несколько SELECT
    #38997267
CorteZ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вероятно, потому что в таблице clan_subpledges более одной записи для какого-то значения clan_id.

Да, больше.
Из таблицы characters.obj_Id и сверяется с таблицей clan_subpledges.leader_id если находит показывает в идеи должен показать characters.char_name

А MySQL показывает лишь последнее имя выбранное в characters.char_name при сверке с clan_subpledges.leader_id, хотя char_name везде разные.


Мой весь запрос который я использую на данный момент (методом проб и ошибок).

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
SELECT `clan_id`, `clan_level`, `hasCastle`, `reputation_score`, 

		(
		SELECT MAX(`name`)
			FROM `clan_subpledges`
				WHERE clan_subpledges.clan_id=clan_data.clan_id
		) AS `clanName`,

		
	       (
		SELECT MAX(`char_name`)
			FROM `characters`, `clan_subpledges`
				WHERE characters.obj_Id=clan_subpledges.leader_id
		)	AS `char_name`
		
		
		FROM `clan_data` 
	ORDER BY `reputation_score` DESC
LIMIT 30;



На всякий случай скину и дампы таблиц.
...
Рейтинг: 0 / 0
Несколько SELECT
    #38997279
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CorteZВероятно, потому что в таблице clan_subpledges более одной записи для какого-то значения clan_id.

Да, больше.Ну так в подзапросе в секции SELECT можно возвращать не более одного значения. Иначе MySQL просто не поймет что ему делать с множеством значений.
...
Рейтинг: 0 / 0
Несколько SELECT
    #38997289
CorteZ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoft, как же тогда быть? Возможно разработчики MySQL предусмотрели такие варианты?
...
Рейтинг: 0 / 0
Несколько SELECT
    #38997363
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CorteZmiksoft, как же тогда быть? Возможно разработчики MySQL предусмотрели такие варианты?"Такие" - это какие? Увы, я так и не понял, чего вы хотите добиться о своего запроса. Изложите задачу целиком, а не ваши попытки ее решить.
...
Рейтинг: 0 / 0
Несколько SELECT
    #38997432
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoftИзложите задачу целиком, а не ваши попытки ее решить.Ещё вдобавок покажите кусочек исходных данных и соответствующий ему кусочек желаемого результата.
А вообще у меня чувство, что вам стоило бы взглянуть на FAQ: Выборка первой/последней записи в группах или на соседний фак по переменным.
...
Рейтинг: 0 / 0
Несколько SELECT
    #38998424
CorteZ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tanglirmiksoftИзложите задачу целиком, а не ваши попытки ее решить.Ещё вдобавок покажите кусочек исходных данных и соответствующий ему кусочек желаемого результата.
А вообще у меня чувство, что вам стоило бы взглянуть на FAQ: Выборка первой/последней записи в группах или на соседний фак по переменным.

Мне нужно получить следующие значения одним запросом, их данные содержатся в разных таблицах.

Вывести нужно эти данные
Название - Таблица clan_subpledges.name

Лидер (сам ник) - Также в таблице нужно извлечь ID лидера clan_subpledges.leader_id чтоб получить сам ник лидера нужно сравнивать id между subpledges.leader_id и characters.obj_id и при нахождении выводить результат characters.char_name
Такой запрос имеет такую форму.
Код: sql
1.
SELECT `char_name` FROM `characters`, `clan_subpledges` WHERE characters.obj_id=clan_subpledges.leader_id;




Репутация - Таблица clan_data.reputation_score

Количество людей - В таблице characters.clanId подсчитываем кол-во записей, у которых clan_subpledges.clan_id будет равняться characters.clanId



Вот запрос который выводит основные данные из таблицы clan_data , а от полученных данных нужно отталкиваться для получения данных из других таблиц.

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
mysql> SELECT `clan_id`, `clan_level`, `reputation_score` FROM `clan_data` ORDER BY `reputation_score` DESC LIMIT 30;
+-----------+------------+------------------+
| clan_id   | clan_level | reputation_score |
+-----------+------------+------------------+
| 268512321 |         11 |         42004769 |
| 268487486 |          0 |            21521 |
| 268490943 |         11 |            12451 |
| 268500096 |         11 |             4000 |
| 268488452 |         11 |             3000 |
+-----------+------------+------------------+
5 rows in set



Данные из таблицы clan_subpledges
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
mysql> SELECT * FROM `clan_subpledges`;
+-----------+------+------------+-----------+
| clan_id   | type | name       | leader_id |
+-----------+------+------------+-----------+
| 268487486 |    0 | Prime      | 268482791 |
| 268512321 |    0 | MegaTest   | 268514026 |
| 268490943 |    0 | DesperadoS | 268482464 |
| 268500096 |    0 | Infected   | 268495466 |
| 268512321 |   -1 | Няшки      |         0 |
| 268488452 |    0 | NPC        | 268488283 |
+-----------+------+------------+-----------+
6 rows in set



Данные из таблицы Characters
Код: 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.
mysql> SELECT `obj_id`, `char_name`, `clanId`  FROM `characters`;
+-----------+--------------+-----------+
| obj_id    | char_name    | clanId    |
+-----------+--------------+-----------+
| 268480697 | Gremory      |         0 |
| 268482791 | DOROSH       | 268487486 |
| 268483508 | test         |         0 |
| 268486083 | Infected     |         0 |
| 268493545 | Тиханов      |         0 |
| 268498117 | DanteS       | 268490943 |
| 268514026 | ZanyDwarf    | 268512321 |
| 268508616 | xInfected    |         0 |
| 268562413 | 1231323      |         0 |
| 268524861 | TESTOSTERON  |         0 |
| 268486026 | TestInfected | 268512321 |
| 268482464 | aefbars      | 268490943 |
| 268486474 | AshirogiMuto | 268490943 |
| 268497649 | Sadistka     | 268490943 |
| 268510613 | asd          |         0 |
| 268495466 | Separator    | 268500096 |
| 268499385 | Cyxapb       |         0 |
| 268499930 | Тест         |         0 |
| 268507019 | arba         |         0 |
| 268513424 | Arbushka     |         0 |
| 268483040 | фывфв        |         0 |
| 268489159 | Palkan       |         0 |
| 268505821 | NightSpectr  |         0 |
| 268528117 | Nyashka      |         0 |
| 268547249 | Sindy        |         0 |
| 268549939 | Rosa         | 268490943 |
| 268551104 | XoXoXo       |         0 |
| 268514838 | testsb       |         0 |
| 268488283 | ДА1          | 268488452 |
| 268556884 | ZunyDwarf    | 268512321 |
+-----------+--------------+-----------+




Вот результат который Я пытаюсь получить (нарисован в блокноте результат).
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
+-----------+------------+-----------+------------------+------------+-----------+
| clan_id   | clan_level | hasCastle | reputation_score | clanName   | char_name |
+-----------+------------+-----------+------------------+------------+-----------+
| 268512321 |         11 |         0 |         42004769 | Няшки      | ZanyDwarf |
| 268487486 |          0 |         0 |            21521 | Prime      | DOROSH    |
| 268490943 |         11 |         2 |            12451 | DesperadoS | aefbars   |
| 268500096 |         11 |         8 |             4000 | Infected   | Separator |
| 268488452 |         11 |         3 |             3000 | NPC        | ДА1       |
+-----------+------------+-----------+------------------+------------+-----------+



Объяснять трудно, но надеюсь меня было понято.
Заранее спасибо.
...
Рейтинг: 0 / 0
Несколько SELECT
    #38998541
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Непонятно, откуда в результате взялось hascastle, но всё остальное делается банальнейшим join-ом.
...
Рейтинг: 0 / 0
Несколько SELECT
    #38998542
CorteZ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tanglirНепонятно, откуда в результате взялось hascastle, но всё остальное делается банальнейшим join-ом.

Всю ночь потратил, дерзая интернет в поиске той функции которая мне поможет.
И сделал только что, таки да JOIN именно то что мне помогло, методам научного тыка.

Код: sql
1.
2.
3.
4.
5.
SELECT clan_subpledges.name AS clan_name, characters.char_name AS clan_leader, clan_data.clan_level, clan_data.reputation_score
	FROM clan_subpledges
	INNER JOIN characters ON (clan_subpledges.leader_id=characters.obj_Id)
	INNER JOIN clan_data ON (clan_data.clan_id=characters.clanid)
	 ORDER BY `reputation_score` DESC;



Благодарю за помощь. =)
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Несколько SELECT
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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