梳理两个SQL查询

时间:2015-11-02 09:27:07

标签: sql oracle11g

我有两个SQL查询

第一个查询会产生一些ID,如33,155,1661 ....

SELECT tal.ID 
FROM CUST_TICKETS tkts, TICKETS_ASSOC_LOGS tal  
WHERE tkts.TICKET_ID = tal.TICKET_ID 
  AND tkts.CUSTOMER_ID IN (66, 304)

通过比较上面的ID,我必须删除其他表中的数据,其中表名如'logs%'

第二个查询是

SELECT table_name, column_name 
FROM cols 
WHERE table_name LIKE 'LOGS_%' 
  AND column_name LIKE 'ID';

上面的查询将生成一些表,如LOGS_1,LOGS_3 .....

上表包含ID列,与其他表没有依赖关系

最后我想通过比较第一个查询生成的ID来删除第二个查询生成的表(LOGS_ *)中的数据

提前致谢

1 个答案:

答案 0 :(得分:0)

你可以通过组合像..

这样的查询来简单地删除数据
delete from logs where log_id in(SELECT tal.ID FROM CUST_TICKETS tkts , TICKETS_ASSOC_LOGS tal  where tkts.TICKET_ID=tal.TICKET_ID and tkts.CUSTOMER_ID IN (66,304) )

logs是第二个查询生成的表名。