2016-08-05 95 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',它應該可以工作。 –