2012-09-17 58 views
1
SELECT * 
FROM `history` 
WHERE `site_id` = '1' 
    AND `user_id` = '1' 
ORDER BY `date` DESC 
LIMIT 0 , 20 

history表中字段爲child_user_id。我需要檢查,如果在child_users表這個ID存在,如果是的話 - 有child_user_namechild_users替換它,否則設置user_nameusers表,其中user_id = '1'如何正確(加入if)MySQL查詢?

+0

沒有得到你想要的東西......你應該至少提供所有的表格說明+你想要做什麼的精確描述... – TheHe

+0

@TheHe剛剛更新。 –

回答

1

試試這個:

SET @useid =1; 

SELECT case when c.id IS null then @useid 
     else (select user_name from users where [email protected]) end 
FROM history h 
LEFT OUTER JOIN child_users c 
ON  h.child_user_id=c.id 
+0

這不正確,因爲我需要從'history'表中選擇所有內容,並將'user_id'引用更改爲:如果'child_users'中存在具有相同id的'child_user_id','child_userrs'將'user_id'更改爲'child_user_name'或來自具有相同ID的'users'的'user_name'。 –

1

試試這個

 SELECT * FROM `history` LEFT OUTER JOIN child_users 
     ON  history.child_user_id=child_user_id WHERE `site_id` = '1'AND `user_id` = '1'