1
SELECT *
FROM `history`
WHERE `site_id` = '1'
    AND `user_id` = '1'
ORDER BY `date` DESC 
LIMIT 0 , 20

historyテーブルにはフィールドがありますchild_user_id。テーブルにこのIDが存在するかどうかを確認する必要があり、存在する場合はfrom にchild_users置き換え、それ以外の場合はfrom table where に設定しますchild_user_namechild_usersuser_nameusersuser_id = '1'

4

2 に答える 2

1

これを試して:

SET @useid =1;

SELECT case when c.id IS null then @useid 
       else (select user_name from  users where user_id=@useid) end 
FROM   history  h 
LEFT OUTER JOIN child_users c
ON     h.child_user_id=c.id
于 2012-09-17T06:33:29.887 に答える
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'
于 2012-09-17T06:58:04.993 に答える