2017-03-15 4 views
1

私は私のウェブサイトのユーザー間でメッセージテーブルを持っています。Mysqlのクエリの頭痛

id   from_user_id  to_user_id  content 
1    A     B     Hello, what's your name 
2    B     A     My name is B, what's your name 
3    A     B     My name is A 
4    C     A     Hello A, my name is C` 

ので、利用者Aの私のリストのメッセージページに、私は(/ユーザAへのへ/ユーザBからのすべてのメッセージのために、私はちょうど最後のメッセージを取得したい)以下のように、それをリストします:

Check all (checkbox) User name Message B My name is A C Hello A, my name is C

私はこのような何か試してみた:

SELECT * FROM message WHERE from_user_id = "A" OR to_user_id = "A" GROUP_BY to_user_id ORDER BY id

をしかし、それは、ユーザAから2つの最後のメッセージを一覧表示しますユーザBとBに: - )私の名前は

ある -

)私の名前はBである、あなたの名前何

私の問題を解決する方法は何ですか?

答えて

1

これはどうFROM:

select user_name, content 
from message m, 
(select max(id) as id, case when from_user_id='A' then to_user_id else from_user_id end as user_name from message where from_user_id='A' or to_user_id='A' group by user_name) a 
where a.id = m.id 
+0

ああ、あなたの答えをありがとうしかし、あなたはそれが非常に誤解し、私がしたいです例えば、AさんはBさんと一緒にメッセージを持っています。AさんもCさんと一緒にメッセージを持っています。私はちょうどA - BとA - 私はそれはFacebookのチャットやビーバーのようなものだと思う...こんにちは、あなたがそれを理解して願って –

+0

よ、私はあなたが今何を望んでいると思うと思う – ded

+0

ありがとう。それを試してみましょう:D –

0

SELECT *メッセージWHERE from_user_id = "A" OR to_user_id = ""

関連する問題