我想知道为什么这个 MySQL 查询不起作用。
MySQL 报告“您的 SQL 语法有错误;请查看与您的 MySQL 服务器版本相对应的手册,以获取在 ''subscriptions' AS sub INNER JOIN (SELECT UserID
as uid from subscriptions
' at line 1) 附近使用的正确语法”
目标:我正在尝试获取指定用户房间中所有用户的不同用户信息列表。
表结构:
“订阅”表结构 - 用户所在的所有房间的表
- 订阅 ID(自动递增)
- 房间
ID - 用户 ID
“用户”表结构 - 由用户帐户详细信息组成的表
- id(自动增量)
- 昵称
- 状态
- 关于
- 等等。
我到目前为止的查询:
SELECT * from 'subscriptions' AS sub
INNER JOIN (SELECT `UserID` as uid from `subscriptions` WHERE RoomID = sub.RoomID)t on t.uid = users.id
WHERE sub.UserID = '1'
我已经完成了一些以上述方式获取用户信息的事情。但是我一直在寻找一个“性能”升级。为了执行类似于上面列出的操作,我必须首先获取用户所在的所有房间的不同列表。然后,获取用户所在房间中所有用户的不同列表。然后 - 将每个房间中的所有成员编译为一个列表,并分别查询每个找到的用户的用户信息表。当然,有一种更有效、更合乎逻辑的方式来实现这一点。