mysql - 对同一张表使用左连接还是有更好的方法?

标签 mysql left-join

我有一个名为 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/

相关文章:

mysql - 如何在MYSQL LEFT JOIN中选择最新的日期

sql - Oracle SQL 中的高效四向联接

mySQL 删除并内连接 3 个所需的表

jquery - 使用 jQuery $.post 安全删除 mysql 行

MySQL 复制 : Question about a fallback-system

mysql - 使用 MySQL 返回包含日期但不包含年份的字符串之间的行

MYSQL 左连接 'LIKE'

php - SQLite 与 MySQL ->rowCount()

php - Laravel 4, Eloquent - 语句和运算符之间

mysql - 从两个表中获取具有后备值的列