我有一个名为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,或者对于这种情况有不同的方法?
答案 0 :(得分:4)
您的查询完全可以接受。每个users
的联接都在一个特定的ID上,转换为简单的查找,开销最小。