奇怪的sql问题,求大神指教

首先上全部的SQL如下:
SELECT
*
FROM
USER_BASE
WHERE
ID IN (
SELECT
ID
FROM
TEACHER T
WHERE
T .SCHOOL_ID = '8a81a9cd50021388015002f60c0201cf'
AND T .STATUS = 0 and 1=2
UNION
SELECT
ID
FROM
SCHOOL_ADMIN SA
WHERE
SA.SCHOOL_ID = '8a81a9cd50021388015002f60c0201cf' and 1=2
UNION
SELECT
ID
FROM
STUDENT STD
LEFT JOIN SCHOOL_CLASS SC ON SC. ID = STD.BELONGCLASS_ID
LEFT JOIN SCHOOL_GRADE SG ON SG. ID = SC.GRADE_ID
WHERE
(
SC.SCHOOL_ID = '8a81a9cd50021388015002f60c0201cf'
OR SG.SCHOOL_ID = '8a81a9cd50021388015002f60c0201cf'
) and 1=2
AND STD.STATUS = 0
UNION
SELECT
ID
FROM
STUDENT_PARENT_SCHOOL PS
WHERE
PS.SCHOOL_ID = '8a81a9cd50021388015002f60c0201cf'
)
AND (
realName LIKE '%李迅%' ESCAPE '/'
OR mobile LIKE '%李迅%' ESCAPE '/'
)

图片说明
首先STUDENT_PARENT_SCHOOL这个表只有两列 PRAENT_ID SCHOOL_ID
单独执行下面代码是报错的
图片说明
但是整体执行全部的SQL可以执行
图片说明
查出来的结果就是完全忽略了 id in(。。。)这一部分

没看懂、你最后那行查询没有id in 是什么鬼?显示的就是最后一行查询出来的吧

没有id那一列这个报错很明显呀,你把报错的那部分代码去掉试试。

你可以先把这些id查出来放到一个临时表再用表连接比较快一点。