у меня есть три таблицы, сделанная таким образом:Присоединяйтесь между тремя столами, чтобы найти места, посещаемые друзьями
пользователи
| ID | имя пользователя | img |
первичный ключ идентификатор, но имя пользователя является уникальным ключом
карты
| ID | имя пользователя | адрес |
Первичный ключ - id. Содержит пользователей различных карт (города), которые посетили.
друг
| ID | user_req | user_acc | статус |
Первичный ключ - id. Два пользователи друзья, только если статус 1.
мне нужно иметь в результате карты, что мои друзья, так что кортеж так:
| имя пользователя | img | адрес |
имя пользователя это имя пользователя моего друга
IMG образ ее профиля
адрес это адрес, место, где он посетил
кортежей должны также сортируются в порядке убывания в соответствии с идентификатором таблицы карт.
Запрос Я использовал, чтобы найти друзей пользователя является:
SELECT *
FROM users
INNER JOIN friend ON (username = user_req)
WHERE (user_acc = ? AND status = 1)
UNION DISTINCT
SELECT *
FROM users
INNER JOIN friend ON (username = user_acc)
WHERE (user_req = ? AND status = 1)
где ? - пользователь, которого я хочу найти.
Кто-нибудь знает, как это сделать? Большое спасибо
благодарит за ответ! Когда я запускаю ваш запрос, я получаю следующую ошибку ** Таблица «u» не существует **. Когда я заменяю u на пользователей, у меня есть проблема с u2 .. :( – user3287827
Errr, oops. Предназначен для псевдонима таблицы пользователей как u.Положите u, но забыл упомянуть пользователей. Исправлено. – Kickstart