2016-04-08 15 views
0

は私が連絡先のテーブルを持っています:MySQLの要求 - 連絡先

from_user_id to_user_id 
300   301 
301   298 

私はそれがされるこのユーザのUSER_ID = 301のためのすべてのユニークな連絡先を見つけようとしている:300および298;

私はこの要求を試してみましたが、私は間違った結果を持っている:

SELECT 
    u.name, 
    IF(c.from_user_id = '.(int)$user->id.', c.from_user_id, c.to_user_id) AS uid 
FROM 
    `#__contacts` AS c 
LEFT JOIN 
    `#__users` 
AS 
    u 
ON 
    uid = u.id 

はどうすればこれを行うことができますか? ありがとう!

+0

あなたはUNIONとそれを解決することができます参照してください。それは本当にシンプルにしてください – Strawberry

答えて

0

はこれを試してみてください:

SELECT u.name 
FROM `#__contacts` AS c 
LEFT JOIN `#__users` AS u ON c.to_user_id = u.id 
WHERE '.(int)$user->id.' IN (c.from_user_id, c.to_user_id) 
ORDER BY c.created DESC 
+0

お返事ありがとうございますが、これは動作しません。私は問題がc.to_user_id = u.idにあると思う – user889349