2011-10-08 54 views
0

我必须删除数据并计算facebbok通知。有3个表格,我需要删除数据 第一个公司表,我删除公司ID。 第二表是mark_question其中i标记问题为已读/未读,最爱/ unfav,通知状态 第三是论坛主题的问题,其中有关问题的数据问想在mysql中做一个复杂的查询吗?

1日查询的查询其中的结果中删除我得到一组数值。

select * 
     from gl_mark_ques 
     where user_id =".$this->session->userdata('user_id')." and 
      vs_ques_status=0 

在此之后,我得到了一组ID的是这些ID的不应该存在于一个查询我执行

SELECT uc.*,count(mq.vs_ques_status) 
     from gl_user_comp as uc 
     inner join gl_mark_ques as mq 
      on uc.user_id=mq.user_id and 
       uc.comp_id='$comp_id' 
     where mq.user_id<>".$this->session->userdata('user_id')." and 
      mq.new_ques_id!=2 and 
      mq.vs_ques_status=1 

mq.new_ques_id = 2 < - 在这里,我需要添加编号的我从第一个查询中获得。可能只有一个id或多个id。我如何整合这种友好的帮助,在此先感谢

回答

0
SELECT uc.*,count(mq.vs_ques_status) as cnt_status_advhub 
from gl_user_comp as uc inner join gl_mark_ques as mq 
on uc.user_id=mq.user_id and uc.comp_id='$comp_id' 
where mq.user_id<>".$this->session->userdata('user_id')." and 
mq.vs_ques_status=1 and mq.new_ques_id NOT IN 
(select new_ques_id from gl_mark_ques where user_id 
=".$this->session->userdata('user_id')." and vs_ques_status=0) 
+0

感谢'@ yoprogramo' – gklaxman

0

如果您不希望第一个查询的ID从第二个查询中删除为什么不添加第一个WHERE的否定部分作为AND第二个查询?

AND (user_id !=".$this->session->userdata('user_id')." or vs_ques_status!=0) 

我不完全理解你的问题,但是,在任何情况下,你可以创建一个子查询,而不是在应用(SELECT ...)在WHERE ...

+0

的ID我从查询中得到:'select * from gl_mark_ques where user_id =“。$ this-> session-> userdata('user_id')。”和 vs_ques_status = 0'不应出现在下一个查询'where new_ques_id!= id(来自上一个查询)' – gklaxman

+1

尝试:'SELECT uc。*,count(mq.vs_ques_status) from gl_user_comp as uc inner join gl_mark_ques作为mq 在uc.user_id = mq.user_id和 uc.comp_id ='$ comp_id' 其中mq.user_id <>“。$ this-> session-> userdata('user_id')。”和 mq.new_ques_id!= 2和 mq.vs_ques_status = 1 and mq.new_ques_id NOT IN(从gl_mark_ques中选择ques_id,其中user_id =“。$ this-> session-> userdata('user_id')。”和vs_ques_status = 0)' – yoprogramo

+0

伙计你救了我的屁股!!!!!非常感谢@yoprogramo – gklaxman