2011-07-26 2 views
1

У меня есть таблица с именем bans, где у меня есть последующие поля:Использование левого соединения для одной таблицы или есть лучший способ?

room_id, banned_user_id, banned_by_id, reason, ts_start, ts_end 

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

Так что у меня этот запрос:

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 для данных 2 я должен взять из таблицы users или есть другой подход для этого вида сценария?

ответ

4

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

Смежные вопросы