2011-12-07 3 views
0

기본적으로 나는 두 개의 테이블 (WordPress에서 복사)을 가지고 있습니다 : users와 user_meta. User_meta에는 4 개의 열이 있습니다 : meta_id, user_id, meta_key, meta_value. 각 행에는 고유 한 meta_id가 있지만 여러 행에 동일한 user_id가있을 수 있습니다. 나는 가능한 한 적은 수의 쿼리로 사용자 (사용자. *)와 사용자와 관련된 모든 meta_values의 모든 것을 얻고 싶습니다. 또한, 반환 된 리소스에 mysql_fetch_object를 사용할 수 있기를 원합니다.하나의 쿼리로 PHP를 사용하여 MySQL 필드를 얻으려면 어떻게해야합니까?

여기에 내가 지금 사용하고있는 작업은 다음과 같습니다

SELECT *, (SELECT role FROM usermeta WHERE user_id=ID) as role FROM users WHERE ID=1 

편집 : 나는 같은 USER_ID와 meta_key 여러 usermeta 행이 있다는 것을 분명 생각하지 않는다.

답변

0

어떨까요?

SELECT * FROM users 
JOIN user_meta ON users.user_id=user_meta.user_id 
WHERE users.user_id=1 

가져 오기 대상 :

$q = mysql_query('select * from users join user_meta on users.user_id=user_meta.user_id where users.user_id=1'); 
while($r = mysql_fetch_object($q)) 
{ 
    echo $r->user_id; 
    echo ... 
    echo ... 

} 
0

시도 :

 
select u.* from users u join user_meta um on (u.user_id=um.user_id) where u.id = 1 
관련 문제