РЕДАКТИРОВАТЬ: Есть!
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.
Правильна ли моя логика? Что я делаю не так?