求一句SQL语句
有一个合同表
HETONG(ID,相关信息等);
合同子表
HETONG_SUB(ID,PID(外键),WUZICODE(物资编码));
有一串字符串
'WZ001,WZ002,WZ016,' 里面存了一些WUZICODE(物资编码)
还可以用到物资表
WUZI(ID,WUZICODE);
求合同中包含了字符串中所有物资编码的合同
比如有一个合同ID为101,子表中有一些数据如
ID = 1, PID = 101, WUZICODE = 'WZ001'
ID = 5, PID = 101, WUZICODE = 'WZ002'
ID = 6, PID = 101, WUZICODE = 'WZ007'
ID = 9, PID = 101, WUZICODE = 'WZ016'
这样就可以查到编号101
如果PID为101的子表没有包含字符串中所有的物资编码就不能查到
这SQL该咋写呢
------解决方案--------------------
SQL code
select HETONG.* from HETONG,HETONG_SUB
where HETONG.ID=HETONG_SUB.PID
and exists (select 1 from
(select wm_concat(WUZICODE) WUZICODE from WUZI group by WUZICODE) t
where t.WUZICODE=HETONG_SUB.WUZICODE);--少了个括号