[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Сравнение двух таблиц
uMnepaTop
Всем привет.
Нужна помощь...
Надо сравнить данные из двух таблиц

например:
1 таблица - Имя
2 таблица - Имя

Вот надо сравнить данные по "Имени"... тем которые совпадают, вписать во вторую таблицу по этому "Имени", например "1" (online как бы), а тем которые не совпадают "0"... кАша huh.gif

Как бы получается:

В первой таблице находится список ONLINE
А во-второй, АРХИВ...
Т.е если в первой таблице появляется ИМЯ которое есть во-второй таблице, во вторую таблицу по этому ИМЕНИ мы обновляем на "ONLINE", как только он пропал из первой таблицы, мы ему ставим "OFFLINE".
rolleyes.gif



Спустя 6 часов, 36 минут, 22 секунды (7.01.2010 - 12:13) sergeiss написал(а):
Используй JOIN в запросе. Он как раз и нужен для этой цели.

Спустя 3 минуты, 53 секунды (7.01.2010 - 12:17) uMnepaTop написал(а):
Сделал болееееееееее примитывным способом) спасибо)
Только вопросик появился, как не начинать новый процесс MySQL пока не завершился другой?

например, у меня сначала идет ИНСЕРТ, а потом АПДЕЙТ...
Мне надо, чтобы пока ИНСЕРТ не закончит, АПДЕЙТ не начинать =\\

Спустя 2 часа, 39 минут, 32 секунды (7.01.2010 - 14:56) Ka4_0k написал(а):
Цитата (uMnepaTop @ 7.01.2010 - 09:17)
Сделал болееееееееее примитывным способом) спасибо)
Только вопросик появился, как не начинать новый процесс MySQL пока не завершился другой?

например, у меня сначала идет ИНСЕРТ, а потом АПДЕЙТ...
Мне надо, чтобы пока ИНСЕРТ не закончит, АПДЕЙТ не начинать =\\

Про более простой способ: подозреваю в 2 запроса smile.gif JOIN быстрее всё-таки)
А про очерёдность могу ошибатся, но DELAYED в запросе, или LOCK TABLES посмотреть.

Спустя 36 минут, 17 секунд (7.01.2010 - 15:33) uMnepaTop написал(а):
делаед не подходит...) а про один запрос.... не знаю как его составить =\\

Спустя 1 день, 22 часа, 27 минут, 48 секунд (9.01.2010 - 14:01) uMnepaTop написал(а):
Блин, Лок таблес тоже не подходит походу...

Спустя 1 час, 13 минут, 42 секунды (9.01.2010 - 15:14) FatCat написал(а):
Цитата (uMnepaTop @ 7.01.2010 - 13:17)
не надо, чтобы пока ИНСЕРТ не закончит, АПДЕЙТ не начинать =\\

Сделай в одной сессии обращения к sql.
При коннекте к базе сохраняем идентификатор сессии:
			$this->connection_id = mysql_connect( $this->obj['sql_host'] ,
$this->obj['sql_user'] ,
$this->obj['sql_pass']
);


Затем все запросы идут по этому идентификатору:
mysql_query($the_query, $this->connection_id);

Спустя 1 час, 10 минут, 25 секунд (9.01.2010 - 16:25) uMnepaTop написал(а):
мм, а это вариант blink.gif
сейчас попробую)

Спустя 1 день, 2 часа, 43 минуты, 47 секунд (10.01.2010 - 19:08) Guest написал(а):
Разделил на 2 файла... И в одном поставил sleep(); =\\
Только без проблем не обходится... какие способы оптимизации запросов есть?)

Спустя 36 секунд (10.01.2010 - 19:09) uMnepaTop написал(а):
Ой сорри, забыл залогиниться =\\

Спустя 10 дней, 1 час, 34 минуты, 11 секунд (20.01.2010 - 20:43) Пупкин_василий написал(а):
помогите плиз



<?php
include "config.php";

echo <<<HTML
<table border=0, align=center>
HTML;



// ХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХ Выбор материнской платы

$query = mysql_query("SELECT * FROM maternal_charge ");
echo <<<HTML
<tr>Выберите материнскую карту</tr>
<tr>
<select name="mb">
HTML;
while ($mb = mysql_fetch_array($query))
echo <<<HTML
<option >$mb[producer]-$mb[model]-$mb[port_HDD]-$mb[socket]-$mb[type_to_memories]-$mb[format]</option>
HTML;
echo <<<HTML
</select></tr>
HTML;




// ХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХ Выбор процессора

$query = mysql_query(" SELECT * FROM processors ");
echo <<<HTML
<tr>Выберите процессор</tr>
<tr>
<select name="cpu">
HTML;

while ($cpu = mysql_fetch_array($query))
echo <<<HTML

<option >$cpu[producer]-$cpu[model]-$cpu[socket]-$cpu[frequency]-$cpu[namber_core]</option>
HTML;
echo <<<HTML
</select></tr>
HTML;





// ХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХ Выбор памяти

$query = mysql_query("SELECT * FROM memory ");
echo <<<HTML
<tr>Выберите оперативную память</tr>
<tr>
<select name="mem">
HTML;
while ($mem = mysql_fetch_array($query))
echo <<<HTML
<option>$mem[producer]-$mem[standard]</option>
HTML;
echo <<<HTML
</select></tr>
HTML;




// ХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХ Выбор видео карты

$query = mysql_query("SELECT * FROM video_card ");
echo <<<HTML
<tr>Выберите видео карту</tr>
<tr>
<select name="video">
HTML;
while ($video = mysql_fetch_array($query))
echo <<<HTML
<option >$video[producer]-$video[model]</option>
HTML;
echo <<<HTML
</select></tr>
HTML;



// ХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХ Выбор жесткого диска

$query = mysql_query("SELECT * FROM hdd ");
echo <<<HTML
<tr>Выберите жесткий диск</tr>
<tr>
<select name="hdd">
HTML;
while ($hdd = mysql_fetch_array($query))
echo <<<HTML
<option >$hdd[producer]-$hdd[type]</option>
HTML;
echo <<<HTML
</select></tr>
HTML;






// ХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХ Выбор корпуса

$query = mysql_query("SELECT * FROM body ");
echo <<<HTML
<tr>Выберите тип корпуса</tr>
<tr>
<select name="body">
HTML;
while ($body = mysql_fetch_array($query))
echo <<<HTML
<option >$body[producer]-$body[type_of_the_body]-$body[type_of_the_maternal_charge]-$body[color]</option>
HTML;
echo <<<HTML
</select>
</tr>
HTML;




// ХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХ Выбор БП

$query = mysql_query("SELECT * FROM power ");
echo <<<HTML
<tr>Выберите блок питания</tr>
<tr>
<select name="pwr">
HTML;
while ($pwr = mysql_fetch_array($query))
echo <<<HTML
<option >$pwr[producer]-$pwr[power]-$pwr[type]</option>
HTML;
echo <<<HTML
</select>
</tr>
HTML;


echo <<<HTML
</table>
HTML;


?>


КАК в разварачивающихся списках зделать свять.
например первые два списка связать по сокету. = выбрав значение из первого списка, во втором остаются те, значения, которые похожи по сокету из выбранного в первом

Спустя 1 минута, 3 секунды (20.01.2010 - 20:44) Пупкин_василий написал(а):
в данном случае во всех выпадающих списках выводятся все строки из БД

Спустя 22 минуты, 13 секунд (20.01.2010 - 21:07) arlamar написал(а):
не надо ничего менять в таблицах надо при выборке сделать JOIN как сказал sergeiss.
а именно SELECT u.*, uo.id AS is_online FROM users u
LEF JOIN users_online uo ON u.id=uo.uid

в результате при совпадении в is_online будет id пользователя если не совпадет то NULL

это ответ на первый пост) ато тут уже совсем о другом гвоорть стали
Быстрый ответ:

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