Использование левого соединения для одной и той же таблицы или есть лучший способ? - PullRequest
1 голос
/ 26 июля 2011

У меня есть таблица с именем bans, где у меня есть следующие поля:

room_id, banned_user_id, banned_by_id, reason, ts_start, ts_end

Данные пользователей поступают из таблицы под названием users, теперь я хотел запросить запреты, чтобы узнать, кто был забанен и кто, наряду с причиной, установил запрет и закончил его.

Итак, у меня есть этот запрос:

SELECT u.username, us.username, b.reason, b.ts_start, b.ts_end
FROM `bans` b 
LEFT JOIN users us ON b.banned_by_uid = us.uid 
LEFT JOIN users u ON b.banned_uid = u.uid
WHERE room_id = 3

Мой вопрос здесь заключается в том, что мой запрос в порядке, если использовать LEFT JOIN для двух данных, которые мне нужно взять из таблицы users, или есть другой подход для такого сценария? 1014 *

1 Ответ

4 голосов
/ 26 июля 2011

Ваш запрос вполне приемлем. Каждое соединение с users имеет определенный идентификатор, что означает простой поиск с минимальными издержками.

...