SQL проверяет соседние строки для последовательности

У меня есть таблица с идентификатором столбец (уникальный, основной), имя (не уникальное - на самом деле, скорее всего, повторяется) и столбец флага, который имеет значения 0, 1 или 2. Допустим, я переупорядочиваю таблицу с помощью команды

SELECT id, name, flag ORDER BY name , id

Я хочу создать с помощью SQL список имен, в котором, когда строки в переупорядочении читаются вниз, есть две соседние строки с тем же именем и флагами значения 0 и 1 (в этом порядке). Кроме того, в этом списке я хочу иметь идентификаторы двух строк, в которых это произошло. Если это произошло более одного раза, должно быть несколько строк.

Так, например, в следующем

id name flag
4  Bob  0
5  Bob  2
6  Bob  1
1  Cathy  0
7  Cathy  1
3  David  0
2  Elvis  2
8  Elvis  0
9  Elvis  1

я хотел бы выбрать

name id1 id2
Cathy 1 7
Elvis 8 9

Как мне это сделать?

Я использую MySQL.

РЕДАКТИРОВАТЬ : обратите внимание, что идентификаторы для этих соседних строк могут не быть последовательными; они идут подряд, только если мы заказываем по имени. См., Например, Кэти.

Спасибо!

1
задан unsorted 21 September 2010 в 17:27
поделиться