Mysql 选择当前用户所在公司的所有用户

Mysql 选择当前用户所在公司的所有用户,mysql,select,reserved-words,Mysql,Select,Reserved Words,我有点糊涂了 当前用户的id存储在会话中 我想选择与当前用户具有相同公司id的所有用户 company\u id是user表中的一个字段。 不起作用的查询: SELECT `all_users`.`id`, `all_users`.`username`, `all_users`.`fullname` FROM (`user` current_user) JOIN `company` c ON `c`.`id` = `current_user`.`company_id` JOIN `user` a

我有点糊涂了

当前用户的id存储在会话中

我想选择与当前用户具有相同
公司id
的所有用户

company\u id
user
表中的一个字段。

不起作用的查询:

SELECT `all_users`.`id`, `all_users`.`username`, `all_users`.`fullname`
FROM (`user` current_user)
JOIN `company` c ON `c`.`id` = `current_user`.`company_id`
JOIN `user` all_users ON `all_users`.`company_id` = `c`.`id`
WHERE `current_user`.`id` = <<<$current_user_id>>>

您应该获得会话用户的公司id,以使您自己和数据库更轻松

select * from all_users u left join company c on u.company_id = c.id WHERE u.company_id = current_user_id.company_id
类似的东西应该可以正常工作。

是MySQL中的保留关键字

您需要在查询中转义它以将其标记为表别名

在查询中使用backtick。像这样:

SELECT `all_users`.`id`, `all_users`.`username`, `all_users`.`fullname`
FROM `user` `current_user`
JOIN `company` c ON `c`.`id` = `current_user`.`company_id`
JOIN `user` all_users ON `all_users`.`company_id` = `c`.`id`
WHERE `current_user`.`id` = <<<$current_user_id>>>
选择'all\u users`.'id`、'all\u users`.'username`、'all\u users`.'fullname``
来自“用户”`当前用户`
在'c'上加入'company'c'。'id`='current\u user`.'company\u id`
在“所有用户”上加入“用户”所有用户。“公司id”=`c`.`id`
其中“当前用户”。`id`=

我认为它有一个非常简单的解决方案

SELECT `all_users`.`id`, `all_users`.`username`, `all_users`.`fullname`
FROM (`user` u)
JOIN `user` all_users ON `u`.`company_id` = `all_users`.`company_id`
WHERE `u`.`id` = <<<$current_user_id>>>
选择'all\u users`.'id`、'all\u users`.'username`、'all\u users`.'fullname``
FROM(`user`u)
加入'u'上的'user'所有用户。'company\u id`='all\u users`.'company\u id``
其中'u`.'id`=

更少的
加入
,更优化,结果相同

显然是错的。但感谢您的尝试。抱歉,为什么会出错?您没有定义
当前用户id
表。我提到他应该获取会话用户的公司id。就像在php变量中一样。@sas1ni69
当前用户id
会给出一个类似
3
的数字。当然,公司id不可能是对的,我的天啊!!!!!非常感谢你。该查询由codeigniter的活动记录输出。谢谢@DreamEater@smhnaji不知道您为什么使用
当前用户
作为
用户
的别名。你必须再打一笔交易派斯,也许这根本不是个好主意。无论如何谢谢你。我们甚至可以避免加入
公司
表格@相反,避免加入
用户
表的
所有用户
别名。
SELECT `all_users`.`id`, `all_users`.`username`, `all_users`.`fullname`
FROM (`user` u)
JOIN `user` all_users ON `u`.`company_id` = `all_users`.`company_id`
WHERE `u`.`id` = <<<$current_user_id>>>