INSET связать 2 таблицы

  • Автор темы Автор темы AKAPE
  • Дата начала Дата начала

AKAPE

Новичок
INSET связать 2 таблицы

Здравствуйте, столкнулся с таким вопросом:
есть 2 таблички, в одной хранится инфа на пользователя, его логин, ID итд, ... во второй табличке(предназначеной, как список контактов) всего 2 колонки id того ЧЬЯ запись, и ID того кого нужно хрнаить в контакт листе. помогите пожалуйста составить запрос на добавление и удаление юзера из листа, если заранее мы знаем только логины (немогу понять, как связать 2 табоички в таких запросах):(
 
select blablabla from table1, table2 where table1.id=table2.id and blablabla
это тебе надо чтоли? :D
 
AKAPE
INSERT INTO contact
SELECT u1.id, u2.id
FROM user u1, user u2
WHERE u1.login = $login1 AND u2.login = $login2

DELETE contact
FROM contact
JOIN user u1 ON u1.id = contact.user1
JOIN user u2 ON u2.id = contact.user2
WHERE u1.login = $login1 AND u2.login = $login2
 
Falc, огромное спасибо! :)

-~{}~ 12.03.04 20:51:

что-то запутался, да и вышло запутано, не работает проверка занесен ли уже ник в контакт лист, мне кажеться у меня вообще подход не тот. помогите пожалуйста

PHP:
$db_lnk=db_connect();
		if(!$res=@mysql_query("SELECT id FROM user_info WHERE nick='".mysql_escape_string($_GET['nick'])."' LIMIT 1")){
			err(mysql_error(),__FILE__,__LINE__);
		}
		if(!@mysql_num_rows($res)){
			alert("пользователь ".$_GET['nick']." не зарегистрирован");
		}
		if(!$res=@mysql_query("SELECT c.uid FROM user_contacts c, user_info i WHERE (c.uid=i.id AND i.nick='".mysql_escape_string($_SESSION['nick'])."') AND (c.buddy=i.id AND i.nick='".mysql_escape_string($_GET['nick'])."') LIMIT 1")){
			err(mysql_error(),__FILE__,__LINE__);
		}
		alert(mysql_result($res,0));
		if(!@mysql_num_rows($res)){
			if(!@mysql_query("INSERT INTO user_contacts SELECT myself.id, buddy.id, 0 FROM user_info myself, user_info buddy WHERE myself.nick='".mysql_escape_string($_SESSION['nick'])."' AND buddy.nick='".mysql_escape_string($_GET['nick'])."'")){
				err(mysql_error(),__FILE__,__LINE__);
			}
		}
		@mysql_close($db_lnk);
 
AKAPE
Зря ты такой код запостил, если это увидит Фанат, он причислит тебя к сабаководам любителям.

Мне лично лень разбираться в твоем коде, пиши что конкретно не понятно. Я привел два четких запроса, которые делают то что ты просил. А писать за тебя скрипты я думаю никто не будет.
Кстати запрос на удаление будет работать только в 4-ом MySQL'е.
 
Falc

Да, самое обидное, что на PHP пишу уже 2-ой год, а с базами данных никогда не работал. Мануал пхп-шный сделан грамотно, разбит по категориям с коментами приличными, а муськин все в одном файле и скроль до посинения. Понял свою ошибку, действительно у меня стоит Mysql 3.23. Поэтому и не джойнит. Почитал далее - 3-тьи версии даже саб-квери не поддерживают и как реализовать подобный Дэлит кроме как 3-мя запросами ума не приложу....
 
спасибо.
выходит только 3-мя запросами прийдеться делать. А жаль. не люблю таких извращений.
 
AKAPE
>>не люблю таких извращений.
Тогда меняй провайдера :)
Или пиши на супорт пусть мускул обновят.
 
они конечно же за 50 долларовый аккаунт (в год) так разгон взяли и каак побежали мускль апгрейдить. А какая сейчас ситуация на рынке хостеров, какое примерное соотношение тех у кого 4-ки к тем у кого 3-ки, не подскажите?
 
AKAPE, версия 4.0 уже год как stable и это в их же интересах его обновить. Предложить им это тебе ведь никто не мешает?
 
конечно же попробую. Просто сам проект должен был быть закончен еще позавчера. Всем спасибо, тему можно закрыть :)
 
Сверху