SQL запрос к двум таблицам.
Есть таблица 1 {id,title,}
Есть таблица 2 {id, item_id, user_id}
Надо выбрать записи из Таблицы 1 при этом проверить нет ли запись от данного пользователя к этому материалу в Таблице 2.
Привет всем, надо выполнить sql запрос на выборку записи из одной таблицы, но при этом проверить другую таблице в наличии записи от данного пользователя.
Есть таблица 1 {id,title,}
Есть таблица 2 {id, item_id, user_id}
Надо выбрать записи из Таблицы 1 при этом проверить нет ли запись от данного пользователя к этому материалу в Таблице 2.
Привет. Опиши по подробней, что в итоге нужно получить на выходе и по какому полю связаны таблицы.
table1 — {id,title}Опиши по подробней
table2 — {id, table1_id, user_id}
Надо выбрать все записи в table1, id которых не существуют в table2 в колонке table1_id для данного пользователя с user_id
Evanescence,
SELECT a.* FROM table_1 a WHERE b.id
По условию в table_1 нет user_id. Как я понял user_id должен передаваться в запрос. Тогда получится что-то такое:
SELECT a.* FROM table_1 a WHERE b.user_id = $user_id
В начале я не правильно описал задачу, мне надо получить опросы (cms_polls) при этом надо еще проверить таблицу (cms_polls_res) что бы пользователь не голосовал на этот опрос… После нескольких тестов понял что join не очень то подходить по этому задачу и нашел решения в NOT IN
Если кому интересно:
SELECT i.* FROM cms_polls i WHERE (id NOT IN (SELECT poll_id FROM cms_polls_res r WHERE r.poll_id = i.id AND r.user_id = 2));
Для двойки
$this->model->filter('id NOT IN (SELECT poll_id FROM cms_polls_res r WHERE r.poll_id = i.id AND r.user_id = '.$user_id.')'); $polls = $this->model->getPolls();