现在 5张表表1: ID BZ 等字段表2:有 JE XH等字段
2和3通过 XH进行关联,表3中的 ID字段 与表1关联
表3表4:有YE PZXH等字段
4和5通过 PZXH 进行关联 表5中的 ID字段与表1关联
表5:现在我定义了一个游标:遍历表1 取出 ID字段要求: 如果不满足(表2中 JE>0 或 表4 YE>0) 且 1.ID = 3.ID =5.ID 且 2.XH = 3.XH 且 4.PZXH=5.PZXH
则 更新表1中的 BZ 字段为 Y自己写了几个,始终不得要领。 是不是该用 EXIST?SQL 菜鸟 求问大侠 谢谢不知道有没有描述清楚..
2和3通过 XH进行关联,表3中的 ID字段 与表1关联
表3表4:有YE PZXH等字段
4和5通过 PZXH 进行关联 表5中的 ID字段与表1关联
表5:现在我定义了一个游标:遍历表1 取出 ID字段要求: 如果不满足(表2中 JE>0 或 表4 YE>0) 且 1.ID = 3.ID =5.ID 且 2.XH = 3.XH 且 4.PZXH=5.PZXH
则 更新表1中的 BZ 字段为 Y自己写了几个,始终不得要领。 是不是该用 EXIST?SQL 菜鸟 求问大侠 谢谢不知道有没有描述清楚..
1. 表1,3,5中的ID是唯一的吗?
2. 三个表之间是一一对应的吗?存不存在其中某一个表中缺少哪个ID的情况呢?
3. 表2与表3的对应关系也是一一对应的吗?
4. 表5与表4的对应关系也是一一对应的吗?只有这些表关系都明确了才能有正确的解决方案。现在我假设各表之间都是一一对应,不存在一对多及缺失数据的情况,解决方案如下:-- IN 子查询
SELECT *
FROM 1
WHERE 1.ID IN (
SELECT 3.ID
FROM 3,5,2,4
WHERE 3.ID = 5.ID AND 3.XH = 2.XH AND 5.PZXH = 4.PZXH AND (2.JE > 0 OR 4.YE > 0))-- EXIST 子查询
SELECT *
FROM 1
WHERE EXIST (
SELECT 3.ID
FROM 3,5,2,4
WHERE 3.ID = 5.ID AND 3.XH = 2.XH AND 5.PZXH = 4.PZXH AND (2.JE > 0 OR 4.YE > 0) AND 1.ID = 3.ID)