2012-02-08 4 views
0

을 나는 MYSQL 쿼리로 어려움을 겪고 있어요 - 내가 2 개 테이블이 있습니다선택 가입 - PHP/MYSQL

표 1 (정보) UID, FIRST_NAME, LAST_NAME을 포함합니다. UID가 포함 된 표 2 (카드), 그림.

는 내가 뭘하려고 배열로 모든 결과를 얻을 수 있습니다 :

WHERE UID IN '$ids' AND LEFT(last_name,1) = '$letter' ORDER BY last_name, first_name ASC 

내가 INNER JOIN 그렇게 내 현재 코드는 생각 :

("SELECT UID, first_name, last_name, pic FROM 
    (SELECT info.first_name,info.last_name,card.pic FROM info 
    INNER JOIN card ON info.UID=card.UID) 
    WHERE LEFT(last_name,1) = '$letter' ORDER BY last_name, first_name ASC") 

이 다음과 같은 오류를하지만 생산하고있다 :

'모든 파생 테이블에는 자체 별칭이 있어야합니다.'

내부 조인을 사용하면 올바른 방향으로 가고 어떻게 파생 테이블에 별칭을 부여 할 수 있습니까? 미리 감사드립니다!

답변

2
select b.UID, g.first_name, g.last_name, b.pic 
from user_data.general_info g 
inner join user_data.Bcards b on g.UID = b.UID 
where LEFT(g.last_name, 1) = '$letter' 
order by g.last_name, g.first_name asc 
+0

대단히 감사합니다. 일치하지 않는 테이블/DB 이름에 사과드립니다. 그러나 해결책을 가져 주셔서 감사합니다. 매우 감사. – Zac

1

내부 쿼리에 이름을 지정해야합니다.

SELECT users.UID, users.first_name, users.last_name, users.pic FROM 
    (SELECT info.first_name,info.last_name,card.pic FROM user_data.general_info 
    INNER JOIN user_data.Bcards ON general_info.UID=Bcards.UID) users 
    WHERE LEFT(users.last_name,1) = '$letter' ORDER BY users.last_name, users.first_name ASC