Обьединение таблиц - Visavi.net
https://visavi.net/
RSS - Visavi.nethttps://visavi.net/assets/img/images/logo_small.pngRSS - Visavi.net
https://visavi.net/
[email protected] (admin)[email protected] (admin)Sun, 29 Dec 2024 09:49:25 +0300Во-первых, смысла в разбиении SQL запросов нет. Это "экономия на спичках", с другой стороны, разбираться в таком коде несколько сложнее. Во-вторых, запросы из нескольких таблиц работают следующим образом - можно сказать, "первоначально" возвращаются все возможные комбинации из записей обеих таблиц. Поэтому, третий тип запроса должен быть примерно таким: <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/6290083. <strong>shilo</strong>, что ты имеешь в виду?<br>
Проще никак не получится. Я же ранее уже говорила, что в принципе можно создать три страницы одного раздела но мне это не с руки. Хотелось бы все вместить в одно предложение.<br>
Во первых это меньше кода, а значить и головняка лишнего нет. Во вторых SQL дуплится на много шустрее php. По этому все, что можно решить с помощью SQL лучше всего именно так и решать. При большом потоке посетителей меньше вероятности, что движок начнет тупить, а у меня он достаточно тяжелый. Меньше нагрузки всегда лучше.
https://visavi.net/topics/37212/628327
Обьединение таблиц ErikaFri, 22 Mar 2013 21:33:23 +0400Сообщенияhttps://visavi.net/topics/37212/628327Не проще уж прописать полные запросы? не вижу смысла в этой мозаике
https://visavi.net/topics/37212/628322
Обьединение таблиц shiloFri, 22 Mar 2013 21:10:58 +0400Сообщенияhttps://visavi.net/topics/37212/628322<pre class="prettyprint">
<?php
$sql = '';
$sql.= "SELECT * FROM `ac_guest`, `ac_guest_ban` ";
# Все гости
if($cat == 'b')
$sql.= "WHERE `ac_guest`.`id` = `ac_guest_ban`.`id_user`";
# Забанённые по ip
elseif($cat == 'n')
$sql.= "WHERE `ac_guest`.`id` <> `ac_guest_ban`.`id_user` ";
# Не нарушавшие гости
$sql.= "GROUP BY `ip` ";
# Только уникальные IP
?>
</pre>
Прошу прощения, премер выше не катит. В этом посте реально правильный пример. Что в нём не так, подскажите кто в курсе...
https://visavi.net/topics/37212/628311
Обьединение таблиц ErikaFri, 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">
<?php
$sql = '';
$sql.= "SELECT * FROM `ac_guest`, `ac_guest_ban` ";
# Все гости
if($cat == 'b')
$sql.= "WHERE `ac_guest`.`id` = `ac_guest`.`id_user`";
# Забанённые по ip
elseif($cat == 'n')
$sql.= "WHERE `ac_guest`.`id` <> `ac_guest`.`id_user` ";
# Не нарушавшие гости
$sql.= "GROUP BY `ip` ";
# Только уникальные IP
?>
</pre>
Но суть сего сказания заключается в том, что пока в таблице `ac_guest_ban` (забанённіе по IP) хотя бы одна запись - скрипт не возвращает ни одного результата.<br>
Как решить данную задачу - неиму. Если кто в курсе как, мне справится с этим - пожалуйста подскажите. За ранее Вам благодарна, с уважением Я<img src="https://visavi.net/uploads/stickers/smile.gif" alt="smile"> <br>
PS<br>
Во избежания тупорылых постов "Гугл тебе в помощ" и тд и тп, отвечу так - трафа меня нет и скорость 320 кбит/сек
https://visavi.net/topics/37212/628304
Обьединение таблиц ErikaFri, 22 Mar 2013 18:36:58 +0400Сообщенияhttps://visavi.net/topics/37212/628304