2016-08-05 94 views
1

这里是我的查询工作良好,但要在其中加入其他的条件,但它给错误不是唯一的表/别名:“用户”PHP的SQL查询工作正常,但我使用两个条件相同的连接不能正常工作

这里是我的代码

$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_id = section_permissions.assigned_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_id = section_permissions.assigned_for所以与之相匹配的是它得到assigned_for ID名称 像以前的名字group_concat我使用users.name然后它的工作,但它显示名称users.user_id = section_permissions.user_id,但我想显示er_id的名称) where users.user_id ='。$ user ['user_id'];

,但我想它从用户表中选择的名称,然后用users.user_id = section_permissions.assigned_for 在同一查询,因为在它的两个不工作

+1

给别名表给用户表 –

+0

**警告**:使用手动转义是非常容易出错的,一个错误可能会导致一个严重的错误[SQL注入漏洞](http://bobby-tables.com/)。尽可能使用**准备好的陈述**。这些在['mysqli'](http://php.net/manual/en/mysqli.quickstart.prepared-statements.php)和[PDO](http://php.net/manual/)中很简单en/pdo.prepared-statements.php)其中任何用户提供的数据都是用'?'或':name'指示符指定的,后者使用'bind_param'或'execute'填充,具体取决于您使用的是哪一个。 – tadman

回答

3

尝试做这种方式与之匹敌:

$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”表两次,你将不得不为他们提供唯一的别名。

+0

个人我更喜欢长手版'INNER JOIN users as u1',但我只是老派我猜.... – ArtisticPhoenix

+0

嘿米兰gupta其工作thankew,但我想 选择users.f_name作为分配,group_concat(DISTINCT evaluation_section。SECTION_NAME)作为allowed_sections从evaluation_section 加入关于section_permissions(section_permissions.section_id = evaluation_section.section_id) 加入的用户U1(u1.user_id = section_permissions.user_id) 加入的用户U2(u2.user_id = section_permissions.assigned_for) 其中u1.user_id ='。$ user ['user_id']; for users.f_name as assign我使用了加入用户u2(u2.user_id = section_permissions.assigned_for nt wrkng – eliana

+0

只需添加'Select u1.f_name as assign',它应该可以工作。 –