Выберите Id + 1 из подзапроса в той же таблице - PullRequest
0 голосов
/ 21 октября 2018

Мне нужно выбрать всю id + 1 и id - 1 информацию о строке из MYTABLE с условием, что id существует в существующем запросе к той же таблице.

Я пытался:

SELECT * 
FROM MYTABLE
WHERE
    id - 1 IN (SELECT * FROM MYTABLE WHERE EXISTINGQUERY) AND
    id + 1 IN (SELECT * FROM MYTABLE WHERE EXISTINGQUERY)

Но это не работает.

Есть предложения?

Ответы [ 2 ]

0 голосов
/ 21 октября 2018

Может использоваться следующий оператор SELECT , который включает переменную подстановки :id

SELECT s.* 
  FROM MYTABLE s 
 WHERE id in (:id - 1,:id + 1) 
   AND EXISTS ( SELECT 1 FROM MYTABLE s WHERE id =:id AND EXISTINGQUERY);

, где запись двоеточия (:) может быть заменена на @ или & в зависимости от базы данных.

0 голосов
/ 21 октября 2018

Мне кажется, что вы можете написать свой запрос, используя соединение, как показано ниже

SELECT t1.* FROM MYTABLE t1 
join (SELECT * FROM MYTABLE WHERE EXISTINGQUERY) t2 
on (t1.id-1=t2.id or t1.id+1=t2.id)
...