powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Помогите с запросом. Сохранение последовательности.
5 сообщений из 5, страница 1 из 1
Помогите с запросом. Сохранение последовательности.
    #38420867
Lantame
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет!
Есть две таблицы:
A
keyA valueA
1 10
2 20

AB
keyAB keyA keyB
1 1 1
2 2 1
3 1 1
4 1 2
5 1 2
6 2 2

Задача: дается список valueA ( например, [10, 20, 10] ). Надо найти такие keyB, что в таблице AB этому keyB соответствует тот же список keyA, что и данному списку valueA, с сохранением количества элементов и их последовательности (в порядке возрастания keyAB). То есть в примере, ответ должен быть keyB=1.

Заранее спасибо!
...
Рейтинг: 0 / 0
Помогите с запросом. Сохранение последовательности.
    #38420895
qwerty112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
LantameВсем привет!
Есть две таблицы:
A
keyA valueA1 102 20

AB
keyAB keyA keyB1 1 12 2 13 1 14 1 25 1 26 2 2

Задача: дается список valueA ( например, [10, 20, 10] ). Надо найти такие keyB, что в таблице AB этому keyB соответствует тот же список keyA, что и данному списку valueA, с сохранением количества элементов и их последовательности (в порядке возрастания keyAB). То есть в примере, ответ должен быть keyB=1.

Заранее спасибо!

что-то типа такого
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
select b.keyB
from

(select group_concat(keyA order by keyA separator ',') as xz 
from A) a
,
(select keyB, group_concat(keyA order by keyAB separator ',') as xz 
from AB
group by keyB) b

where concat(',',b.xz,',') like concat('%,',a.xz,',%')


непроверял
...
Рейтинг: 0 / 0
Помогите с запросом. Сохранение последовательности.
    #38420981
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qwerty112,

Не понял... а где в вашем варианте набор исходных данных 10,20,10? И первый групконкат - соберет всю табличку в одну большую строку, нет?

Подход интересный, но надо в группировке продублировать индекс для "10" - дважды: вначале груп-конката и в конце. А сортировка внутри него - это исключит однозначно. Более того, выборка из первой таблицы в подзапросе - этот индекс автоматически "сгруппирует", нет?

и? Чего-то под утро уже башка не варит... есть идеи как выдать дважды одно значение?

Я не вижу варианта кроме как воткнуть в запрос исходный список как псевдотаблицу типа

Код: sql
1.
2.
3.
4.
5.
(
  SELECT 1 AS num, 10 AS val UNION ALL
  SELECT 2, 20 UNION ALL
  SELECT 3, 10
)



вот ежели её сджойнить с первой табличкой, то можно прирастить сюда и инденты с повторениями... а уж потом группировать конкатом... нет?
...
Рейтинг: 0 / 0
Помогите с запросом. Сохранение последовательности.
    #38420984
qwerty112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Arhat109qwerty112,

Не понял... а где в вашем варианте набор исходных данных 10,20,10?
да, Ваша правда
а я так себе "надумал" :), что таб.А - это и есть поисковый набор,
тогда как-то так будет в итоге
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
select b.keyB
from

(select group_concat(A.keyA order by SearchSet.num separator ',') as xz 
from A inner join
  (
    SELECT 1 AS num, 10 AS val UNION ALL
    SELECT 2, 20 UNION ALL
    SELECT 3, 10
  ) SearchSet
on A.valueA=SearchSet.val) a
,
(select keyB, group_concat(keyA order by keyAB separator ',') as xz 
from AB
group by keyB) b

where concat(',',b.xz,',') like concat('%,',a.xz,',%')
...
Рейтинг: 0 / 0
Помогите с запросом. Сохранение последовательности.
    #38421025
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qwerty112,

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


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