Обьединение таблиц - Visavi.net https://visavi.net/ RSS - Visavi.net https://visavi.net/assets/img/images/logo_small.png RSS - Visavi.net https://visavi.net/ [email protected] (admin) [email protected] (admin) Sun, 29 Dec 2024 09:49:25 +0300 Во-первых, смысла в разбиении SQL запросов нет. Это &quot;экономия на спичках&quot;, с другой стороны, разбираться в таком коде несколько сложнее. Во-вторых, запросы из нескольких таблиц работают следующим образом - можно сказать, &quot;первоначально&quot; возвращаются все возможные комбинации из записей обеих таблиц. Поэтому, третий тип запроса должен быть примерно таким: <pre class="prettyprint">SELECT * FROM `ac_guest` LEFT JOIN `ac_guest_ban` ON `ac_guest`.`id` = `ac_guest`.`id_user` WHERE `ac_guest`.`id_user` IS NULL</pre> https://visavi.net/topics/37212/629008 Обьединение таблиц Петр Tue, 26 Mar 2013 12:52:00 +0400 Сообщения https://visavi.net/topics/37212/629008 3. <strong>shilo</strong>, что ты имеешь в виду?<br> Проще никак не получится. Я же ранее уже говорила, что в принципе можно создать три страницы одного раздела но мне это не с руки. Хотелось бы все вместить в одно предложение.<br> Во первых это меньше кода, а значить и головняка лишнего нет. Во вторых SQL дуплится на много шустрее php. По этому все, что можно решить с помощью SQL лучше всего именно так и решать. При большом потоке посетителей меньше вероятности, что движок начнет тупить, а у меня он достаточно тяжелый. Меньше нагрузки всегда лучше. https://visavi.net/topics/37212/628327 Обьединение таблиц Erika Fri, 22 Mar 2013 21:33:23 +0400 Сообщения https://visavi.net/topics/37212/628327 Не проще уж прописать полные запросы? не вижу смысла в этой мозаике https://visavi.net/topics/37212/628322 Обьединение таблиц shilo Fri, 22 Mar 2013 21:10:58 +0400 Сообщения https://visavi.net/topics/37212/628322 <pre class="prettyprint"> &lt;?php $sql = &#039;&#039;; $sql.= &quot;SELECT * FROM `ac_guest`, `ac_guest_ban` &quot;; # Все гости if($cat == &#039;b&#039;) $sql.= &quot;WHERE `ac_guest`.`id` = `ac_guest_ban`.`id_user`&quot;; # Забанённые по ip elseif($cat == &#039;n&#039;) $sql.= &quot;WHERE `ac_guest`.`id` &lt;&gt; `ac_guest_ban`.`id_user` &quot;; # Не нарушавшие гости $sql.= &quot;GROUP BY `ip` &quot;; # Только уникальные IP ?&gt; </pre> Прошу прощения, премер выше не катит. В этом посте реально правильный пример. Что в нём не так, подскажите кто в курсе... https://visavi.net/topics/37212/628311 Обьединение таблиц Erika Fri, 22 Mar 2013 20:09:12 +0400 Сообщения https://visavi.net/topics/37212/628311 Привет всем)<br> У меня неожиданно возникла запара. Дело в том, что у меня есть 2 таблицы. 1 - таблица гостей, 2 - таблица забанённых гостей. Пишу скрипт который выводит гостей по категориям. <br> 1. all - выводит всех гостей<br> 2. b - выводит гостей забанённых по IP<br> 3. n - выводит законопослушных гостей<br> Я бы могла создать несколько страниц, в которой было бы по отдельному запросу к нужной на момент использования таблице. Но такой подход мне не особо нравится.<br> Потому я пошла как говорится, другим путём.<br> <pre class="prettyprint"> &lt;?php $sql = &#039;&#039;; $sql.= &quot;SELECT * FROM `ac_guest`, `ac_guest_ban` &quot;; # Все гости if($cat == &#039;b&#039;) $sql.= &quot;WHERE `ac_guest`.`id` = `ac_guest`.`id_user`&quot;; # Забанённые по ip elseif($cat == &#039;n&#039;) $sql.= &quot;WHERE `ac_guest`.`id` &lt;&gt; `ac_guest`.`id_user` &quot;; # Не нарушавшие гости $sql.= &quot;GROUP BY `ip` &quot;; # Только уникальные IP ?&gt; </pre> Но суть сего сказания заключается в том, что пока в таблице `ac_guest_ban` (забанённіе по IP) хотя бы одна запись - скрипт не возвращает ни одного результата.<br> Как решить данную задачу - неиму. Если кто в курсе как, мне справится с этим - пожалуйста подскажите. За ранее Вам благодарна, с уважением Я<img src="https://visavi.net/uploads/stickers/smile.gif" alt="smile"> <br> PS<br> Во избежания тупорылых постов &quot;Гугл тебе в помощ&quot; и тд и тп, отвечу так - трафа меня нет и скорость 320 кбит/сек https://visavi.net/topics/37212/628304 Обьединение таблиц Erika Fri, 22 Mar 2013 18:36:58 +0400 Сообщения https://visavi.net/topics/37212/628304