Запрос к базе данных: получать обновления от друзей - PullRequest
0 голосов
/ 23 января 2012

РЕДАКТИРОВАТЬ: Есть!

SELECT `update`, `date` from updates, users_friends
WHERE updates.userID = users_friends.friendID
and users_friends.userID = "5"
and users_friends.status = "2"

Я понял, что пытался вызвать обновление, которого не было. Чтобы устранить проблему, я создал новое обновление, на этот раз написанное пользователем с идентификатором 6.

-

Я создаю сайт социальной сети. Я хочу отобразить список обновлений от друзей. Моя база данных содержит две таблицы для этого: обновления и users_friends.

Вот мой запрос:

ВЫБРАТЬ «обновление» из обновлений ГДЕ «updates.userID» в (ВЫБЕРИТЕ «FriendID» от users_friends ГДЕ 'users_friends.userID' = $ myID и «статус» = 2);

(значение статуса 2 означает, что их дружба утверждена)

-

- Структура таблицы для таблицы updates

СОЗДАТЬ СТОЛ, ЕСЛИ НЕ СУЩЕСТВУЕТ updates ( update текст НЕ НУЛЬ, date отметка времени NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, userID int (11) NOT NULL, ПЕРВИЧНЫЙ КЛЮЧ (date, userID), КЛЮЧ fk_updates_users1 (userID) ) ENGINE = InnoDB CHARSET ПО УМОЛЧАНИЮ = utf8;

-

- Структура таблицы для таблицы users_friends

СОЗДАТЬ ТАБЛИЦУ, ЕСЛИ НЕ СУЩЕСТВУЕТ users_friends ( userID int (11) NOT NULL, friendID int (11) NOT NULL, status int (1) NOT NULL ПО УМОЛЧАНИЮ '0', ПЕРВИЧНЫЙ КЛЮЧ (userID, friendID), КЛЮЧ fk_users_has_friends_users1 (userID) ) ENGINE = InnoDB CHARSET ПО УМОЛЧАНИЮ = utf8;

Проблема в том, что я всегда получаю пустой набор. Я добавил пример обновления в таблицу обновлений с userID = 5 и пример строки в таблицу users_friends, где пользователь 6 дружит с пользователем 5 и myID = 6.

Правильна ли моя логика? Что я делаю не так?

1 Ответ

0 голосов
/ 23 января 2012
SELECT `update`, `date` from updates, users_friends
WHERE updates.userID = users_friends.friendID
and users_friends.userID = "5"
and users_friends.status = "2"

Я понял, что пытался вызвать обновление, которого не было.Чтобы устранить проблему, я создал новое обновление, на этот раз написанное пользователем с идентификатором 6.

...