我有一个名为 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
中获取的 2 个数据,或者对于这种情况有不同的方法?
最佳答案
您的查询完全可以接受。 users
的每个连接都在一个特定的 ID 上,这转化为一个简单的查找,开销最小。
关于mysql - 对同一张表使用左连接还是有更好的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6832650/