我需要从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)
但这不起作用。
有什么建议吗?
答案 0 :(得分:1)
在我看来,您可以使用如下所示的连接来编写查询
SELECT t1.* FROM MYTABLE t1
join (SELECT * FROM MYTABLE WHERE EXISTINGQUERY) t2
on (t1.id-1=t2.id or t1.id+1=t2.id)
答案 1 :(得分:1)
可以使用以下 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);
根据数据库,其中的冒号(:
)表示法可以替换为@
或&
。