2011-04-23 5 views
1

두 테이블에서 정보를 얻고 한 필드 씩 순서를 지정하기 위해 MySQL 쿼리를 사용하고 있습니다. 마지막 행에 대한 어떤 것이 작동하지 않고 내용을로드하는 AJAX 함수가 오류를 리턴합니다.첫 번째 SQL 쿼리 - OrderBy 오류

$list = mysql_query("SELECT id, 
      user_email, 
      meta_lastname.meta_value lastname, 
      meta_firstname.meta_value firstname 
FROM  wp_users 
LEFT JOIN wp_usermeta meta_lastname 
ON  meta_lastname.user_id = wp_users.id 
LEFT JOIN wp_usermeta meta_firstname 
ON  meta_firstname.user_id = wp_users.id 
WHERE  meta_lastname.meta_key = 'last_name' 
AND  meta_firstname.meta_key = 'first_name' 
    WHERE user_email LIKE '%$searchpattern%' 
    ORDER BY lastname;"); 

마지막 비트에 관한 것이 잘못되어 오류가 반환됩니다.

WHERE user_email LIKE '%$searchpattern%' 
     ORDER BY lastname;"); 

어떤 아이디어가 잘못 되었나요? 전체 열 이름이 아닌 별명으로

놀라운

+0

정확한 오류를 표시합니다. – jimy

+2

쿼리에서 두 위치를 가질 수 없습니다. –

+0

어떻게해야합니까? –

답변

5

당신은 당신의 쿼리에 두 WHERE 있습니다 : 당신은 AND 같은 논리 연산자 사용할 필요가

WHERE  meta_lastname.meta_key = 'last_name' 
AND  meta_firstname.meta_key = 'first_name' 
    WHERE user_email LIKE '%$searchpattern%' 

: 또한

WHERE  meta_lastname.meta_key = 'last_name' 
AND  meta_firstname.meta_key = 'first_name' 
    AND user_email LIKE '%$searchpattern%' 

, 당신은 아마도 원래의 이름으로 주문해야 meta_lastname.meta_value 별칭이 lastname이 아닙니다.

1

위해.

ORDER BY meta_lastname.meta_value 
1

나는 그것이 세미콜론이라고 생각한다. 시도하십시오 ORDER BY lastname"); 그렇지 않으면 주문 진술없이 시도하십시오.

1

또한 두 번째 "WHERE"를 "AND"로 변경해야합니다.