使用左连接作为同一个表还是有更好的方法?

时间:2011-07-26 15:35:36

标签: mysql left-join

我有一个名为bans的表格,其中包含以下字段:

room_id, banned_user_id, banned_by_id, reason, ts_start, ts_end

用户数据来自名为users的表格,现在我想查询禁令,以查询被禁止的人的姓名,以及理由,禁令的放映时间和结束时间。 / p>

所以我有这个问题:

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

我的问题是我的查询是否正常,我必须从表users中获取2个数据的LEFT JOIN,或者对于这种情况有不同的方法?

1 个答案:

答案 0 :(得分:4)

您的查询完全可以接受。每个users的联接都在一个特定的ID上,转换为简单的查找,开销最小。