Задавайте вопросы, мы ответим
Вы не зашли.
Таблица друзей:
CREATE TABLE `friends` ( `user1` int(10) unsigned NOT NULL default '0', `user2` int(10) unsigned NOT NULL default '0', PRIMARY KEY (`user1`,`user2`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
В поле user1 - находится меньший id юзеров, в user2 - больший id юзеров.
Как выбрать общих друзей у 2х юзеров?
Неактивен
Использование такого запроса на сколько верно?
SELECT `users`.`id`, `users`.`username`, `users`.`avatar` FROM ( SELECT IF (`user1` != 3, `user1`, `user2`) as `uid` FROM `friends` WHERE ( `user1` IN ( SELECT IF (`user1` != 1, `user1`, `user2`) as `uid` FROM `friends` WHERE `user1` = 1 OR `user2` = 1 ) AND `user2` = 3 ) OR ( `user2` IN ( SELECT IF (`user1` != 1, `user1`, `user2`) as `uid` FROM `friends` WHERE `user1` = 1 OR `user2` = 1 ) AND `user1` = 3 ) ) AS `common_friends` JOIN `users` ON `users`.`id` = `common_friends`.`uid`
Отредактированно maxtor (09.01.2011 16:40:37)
Неактивен
Неактивен
Имеем такие данные:
INSERT INTO `friends` (`user1`, `user2`) VALUES (1, 2), (2, 3);
У пользователей 1 и 3, как видно, есть общий друг 2. Но выше приведенный запрос его не находит...
Неактивен
Неактивен
privet. a mojete li obyasnit eti kodi:
union,
having,
SELECT IF (`user1` != 1, `user1`, `user2`),
JOIN
ON `users`.`id` = `common_friends`.`uid` (common_friends i on)
.podrobneye pojalusta
Неактивен
Привет.
1. Правила, п.1.
2. Не поднимайте старой темы, вы же правда не собираетесь ее обсуждать?
3. Начните таки с чтения документации, там все эти слова есть.
Неактивен