Хотите сделать сложный запрос в MySQL? - PullRequest
0 голосов
/ 08 октября 2011

Я должен удалить данные и посчитать для facebbok как уведомление.Есть 3 таблицы, из которых мне нужно удалить данные 1-я таблица компании, где я удаляю идентификатор компании.2-я таблица - mark_question, где я помечаю вопрос как прочитанный / непрочитанный, fav / unfav, статус уведомления. 3-й - это вопросы темы форума, где данные, касающиеся задаваемых вопросов

1-й запрос, удаляются в результате запроса, гдея получаю набор значений.

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

после этого я получаю набор идентификаторов, эти идентификаторы не должны присутствовать в следующем запросе, который я выполняю

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<- здесь мне нужно добавить идентификаторы, которые я получил из первого запроса.Там может быть только один идентификатор или несколько идентификаторов.Как интегрировать эту любезную помощь, заранее спасибо </p>

Ответы [ 2 ]

0 голосов
/ 13 октября 2011
 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 голосов
/ 08 октября 2011

Если вы не хотите, чтобы идентификаторы из 1-го запроса были удалены из 2-го запроса, почему бы вам не добавить отрицательную часть 1-го WHERE в качестве AND во 2-м запросе?

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

Я не до конца понимаю вашу проблему, но в любом случае вы можете создать подзапрос и применить NOT IN (SELECT ...) в WHERE ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...