[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Как выбрать из БД исключая массив
lop_atin
Здравствуйте, у меня есть БД в ней находятся ссылки.

Для того чтобы вывести последнюю, использую такой вот запрос:
$result = mysql_query("SELECT * FROM link ORDER BY id DESC LIMIT 1",$db);


Но проблема в том, что нужно контролировать заходил ли этот человек по этой ссылке, для этого я создал другую таблицу данные и в ней отмечаю id человека и id ссылки. Тобишь в конце-то концов я имею массив id ссылок, которые я должен пропустить и не выводить из БД в первом запросе.

Массив получаю так:
$result_2 = mysql_query("SELECT * FROM link_2 WHERE id=$id_user",$db);
$myrow_2 = mysql_fetch_array($result_2);
$id_url = $myrow_2['id_link']


И вот момент истины, как написать теперь запрос чтобы из первой БД доставалась последняя запись исключая id_link из второго запроса?

Я пробовал так:
$result = mysql_query("SELECT * FROM link WHERE id != '$id_url' ORDER BY id DESC LIMIT 1",$db);


Но все-равно достается ссылка, которую пользователь уже посещал..
rooor
Цитата
WHERE id != '$id_url'

может так? WHERE id <> '$id_url'
kaww
select * from `link` 
where `link`.`id` not in ((select `link_2`.`id_link` from `link_2`
where `link_2`.`id` = $id_user));
lop_atin
Цитата (rooor @ 14.06.2013 - 13:31)
Цитата
WHERE id != '$id_url'

может так? WHERE id <> '$id_url'

Попробовал, но проблема не в этом... Все-равно не работает, я вот думаю.. А можно ли вообще ставить массив в запрос? И правильно ли я его вообще написал?
Valick
lop_atin, внимательно читайте пост kaww, в частности конструкцию NOT IN()


_____________
Стимулятор ~yoomoney - 41001303250491
lop_atin
Цитата (kaww @ 14.06.2013 - 13:41)
<pre class="sh_sourceCode" rel="sql"><span class="sh_keyword">select</span> <span class="sh_symbol">*</span> <span class="sh_keyword">from</span> <span class="sh_att">`link`</span>
<span class="sh_keyword">where</span> <span class="sh_att">`link`</span><span class="sh_symbol">.</span><span class="sh_att">`id`</span> <span class="sh_keyword">not in</span> <span class="sh_symbol">((</span><span class="sh_keyword">select</span> <span class="sh_att">`link_2`</span><span class="sh_symbol">.</span><span class="sh_att">`id_link`</span> <span class="sh_keyword">from</span> <span class="sh_att">`link_2`</span>
<span class="sh_keyword">where</span> <span class="sh_att">`link_2`</span><span class="sh_symbol">.</span><span class="sh_att">`id`</span> <span class="sh_symbol">=</span> $id_user<span class="sh_symbol">));</span></pre>

все разобрался... отлично работает, спасибо БОЛЬШОЕ!!

Долго не отвечал, потому что появилась еще одна задача, в этом запросе нужно проверять сразу по двум полям... не как не могу написать корректный код, может еще раз поможете?)

То есть нужно проверять не только: id_link а еще и id_post (если хотя бы одна из этих будет во второй БД, то отсеивать эти строчки...).

Помогите-ка, а?)
lop_atin
Ребятки?
lop_atin
Пацаны ну помогите пожалуйста)
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.