2011-12-07 48 views
0

基本上,我有兩個表(從WordPress複製):用戶和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