Вставить серийный номер в запрос на объединение mysql - PullRequest
2 голосов
/ 03 августа 2020

У меня есть запрос mysql с использованием объединения как

(Select id,c1,c2,c3 from table where c1=x1 and c2=x2 ) union  <<---block 1
(Select id,c1,c2,c3 from table where c1=x1 and c2=x2 ) union  <<---block 2
...
(Select id,c1,c2,c3 from table where c1=x1 and c2=x2 ) union  <<---block mth

, который возвращает result

id|c1|c2|c3
------------
1 |..|..|..
2 |..|..|..
3 |..|..|..

.. .. .. ..
.. .. .. ..
nth.. .. ..

Мне нужна таблица, которая добавляет не показывающую результат, полученный из которого блок объединения

id|c1|c2|c3|blk
---------------
1 |..|..|..|1
2 |..|..|..|1
3 |..|..|..|2

.. .. .. ..|3
.. .. .. ..|3
nth.. .. ..|3

Ответы [ 2 ]

1 голос
/ 03 августа 2020

Просто добавьте константу в предложение select:

SELECT id, c1, c2, c3, 1 AS blk FROM table WHERE c1 = x1 AND c2 = x2 UNION ALL -- block 1
SELECT id, c1, c2, c3, 2 FROM table WHERE c1 = x1 AND c2 = x2 UNION ALL        -- block 2
...
SELECT id, c1, c2, c3, m FROM table WHERE c1 = x1 AND c2 = x2                  -- block m
1 голос
/ 03 августа 2020

Добавьте еще 1 столбец к каждому запросу с номером блока:

(Select id,c1,c2,c3, 1 blk from table where c1=x1 and c2=x2 )
(Select id,c1,c2,c3, 2 from table where c1=x1 and c2=x2 ) 
...
(Select id,c1,c2,c3, <n> from table where c1=x1 and c2=x2 )
...