Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Нужна помощь с запросом для выборки / 9 сообщений из 9, страница 1 из 1
25.08.2017, 15:49
    #39510616
poiuytrewq
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна помощь с запросом для выборки
Доброго дня,

есть две таблицы, первая с именами участников голосования (имя - PRIMARY индекс), вторая, с результатами голосования за того или иного участника:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
tbl1

name (primary)
-------------
john
bill
sarah


tbl2

vote1  vote2  id
----------------
john          1
       john   2
       sarah  3
bill          4
john          5
sarah         6
       bill   7



во второй таблице, имя участника, за которого был отдан голос может находиться в столбце vote1 или vote2, задача выборки, получить имена всех участников (tbl1.name) и максимальный, соответствующий tbl2.id для него, т.е. результат выборки для данного примера должен быть таким:

Код: sql
1.
2.
3.
john,  5
bill,  7
sarah, 6



Помогите пожалуйста
...
Рейтинг: 0 / 0
25.08.2017, 16:20
    #39510639
javajdbc
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна помощь с запросом для выборки
poiuytrewq,

select vote, max(id) max_id
from
(
select
vote1 AS vote,
id
from tbl1

union all

select
vote2 AS vote,
id
from tbl1
) z
group by vote
...
Рейтинг: 0 / 0
25.08.2017, 16:55
    #39510670
poiuytrewq
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна помощь с запросом для выборки
javajdbc, если, кроме id нужно взять еще данные строкового типа? Я не упомянул это в примере для упрощения, но это нужно, тогда функции MAX уже не помогут
...
Рейтинг: 0 / 0
25.08.2017, 16:57
    #39510672
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна помощь с запросом для выборки
Код: sql
1.
2.
3.
SELECT COALESCE(vote1, vote2) vote, MAX(id) id
FROM tbl1
GROUP BY COALESCE(vote1, vote2)
...
Рейтинг: 0 / 0
25.08.2017, 16:58
    #39510673
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна помощь с запросом для выборки
poiuytrewqкроме id нужно взять еще данныеИспользуйте приведённый запрос как подзапрос в условии отбора.
...
Рейтинг: 0 / 0
25.08.2017, 18:00
    #39510710
javajdbc
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна помощь с запросом для выборки
poiuytrewqjavajdbc, если, кроме id нужно взять еще данные строкового типа? Я не упомянул это в примере для упрощения, но это нужно, тогда функции MAX уже не помогут

вот тут все есть, определитесь только сначала с логикой (T1-T4)

7543220
...
Рейтинг: 0 / 0
25.08.2017, 18:04
    #39510713
javajdbc
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна помощь с запросом для выборки
Akina
Код: sql
1.
2.
3.
SELECT COALESCE(vote1, vote2) vote, MAX(id) id
FROM tbl1
GROUP BY COALESCE(vote1, vote2)




...да.... и скорее всего быстрее чем унион.
...
Рейтинг: 0 / 0
27.08.2017, 20:58
    #39511292
poiuytrewq
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна помощь с запросом для выборки
javajdbcвот тут все есть, определитесь только сначала с логикой (T1-T4)
7543220

Благодарю, это то что нужно
...
Рейтинг: 0 / 0
28.08.2017, 19:47
    #39511875
javajdbc
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна помощь с запросом для выборки
poiuytrewqjavajdbcвот тут все есть, определитесь только сначала с логикой (T1-T4)
7543220

Благодарю, это то что нужно

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


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