Php sql查询工作正常,但由于我在同一联接中使用了两个条件,因此无法工作

Php sql查询工作正常,但由于我在同一联接中使用了两个条件,因此无法工作,php,mysql,Php,Mysql,下面是我的查询运行良好,但希望在其中添加另一个条件,但它给出的错误不是唯一的表/别名:“users” 这是我的密码 $query = 'select group_concat(DISTINCT evaluation_section. section_name) as allowed_sections from evaluation_section join section_permissions on (section_permissions.section_id

下面是我的查询运行良好,但希望在其中添加另一个条件,但它给出的错误不是唯一的表/别名:“users”

这是我的密码

$query = 'select group_concat(DISTINCT evaluation_section. section_name) as   allowed_sections from evaluation_section 
            join section_permissions on (section_permissions.section_id = evaluation_section.section_id )
            join users on ( users.user_id = section_permissions.user_id )
            join users on ( users.user_id = section_permissions.assigned_for )
            where  users.user_id = '.$user['user_id'];
还要从用户表中选择名称,然后使用此条件在
上加入用户(users.user\u id=section\u permissions.assigned\u for)

请帮帮我

这是我编辑的文本
这是我完整的工作查询

$q = 'select  group_concat(DISTINCT evaluation_section. section_name) as   allowed_sections from evaluation_section 
        join section_permissions on (section_permissions.section_id = evaluation_section.section_id )
        join users on ( users.user_id = section_permissions.user_id )
        where users.user_id = '.$user['user_id'];
但我希望它从用户表中选择名称,然后将其与
users.user\u id=section\u permissions.assigned\u for
匹配,以便它获得id name的assigned\u名称 与前面一样,组\u concat我使用users.name,然后它工作,但它显示
users.user\u id=section\u permissions.user\u id
但我想显示er\u id的名称) 其中users.user_id='.$user['user_id']

但我希望它从用户表中选择名称,然后将其与
users.user\u id=section\u permissions.assigned\u for

在同一个查询中,因为在两种情况下,它不起作用

请尝试这样做:

$query = 'select group_concat(DISTINCT evaluation_section. section_name) as   allowed_sections from evaluation_section 
        join section_permissions on (section_permissions.section_id = evaluation_section.section_id )
        join users u1 on ( u1.user_id = section_permissions.user_id )
        join users u2 on ( u2.user_id = section_permissions.assigned_for )
        where  u1.user_id = '.$user['user_id'];  

由于您要两次加入“users”表,因此必须为这两个表提供唯一的别名。

为users表提供别名警告:使用手动转义极易出错,一个错误就可能导致严重后果。尽可能使用事先准备好的陈述。在任何用户提供的数据都指定有
:name
指示符的情况下,这些操作都非常简单,稍后将使用
bind_param
execute
填充指示符,具体取决于您使用的是哪一个。就个人而言,我更喜欢长版本的
内部连接用户作为u1
,但我不喜欢我想这只是老派……嘿,米伦·古普塔,谢谢,但我想选择users.f_name作为分配,group_concat(不同的评估部分。部分名称)作为允许的部分,从评估部分加入部分权限(部分权限。部分id=评估部分。部分id)加入用户u1(u1.user\u id=section\u permissions.user\u id)在(u2.user\u id=section\u permissions.assigned\u for)上加入用户u2,其中u1.user\u id='.$user['user\u id'];对于users.f\u name as assign我在上使用了加入用户u2(u2.user\u id=section\u permissions.assigned\u for nt wrkng只需尝试添加
选择u1.f\u name作为assign
,它应该可以工作。很抱歉,我无法获取,因为问题出在哪里。