2017-05-14 16 views
4

私はmessageという名前のテーブルを持っています。私は、person_send_idとperson_receive_idが異なる場合にのみ、テーブルからメッセージを選択しようとしています。
person_send_idとperson_receive_idを正しく選択できます。
しかし、メッセージの選択方法はわかりません。
私は選択内で選択を使用することを考えていましたが、それを実装する方法がわからない、またはそれを実行する正しい方法がわかりません。where句でselectを使用する

message_id 
message 
person_send_id 
person_receive_id 

SELECT DISTINCT person_send_id, person_receive_id 
FROM `message` 
WHERE person_send_id = 21 OR person_receive_id = 21 
//AND SELECT message FROM `message` when these criteria are met 

メッセージテーブルは、ここに私のテーブルデータです。

enter image description here

私はperson_send_idとperson_receive_idが自分自身を繰り返しているだけで最初のメッセージを選択します。この場合
私は同じ人に10件のメッセージを送るのであれば、私はメッセージのみを持つ唯一のレコードを取得したい、「こんにちは」の例

+1

複数のメッセージが送信者から受信者に送信された場合はどうなりますか? – wallyk

+0

これは問題ありません。私は「会話」ごとに1つのメッセージを表示したいだけです。この場合、タイトルの役割を果たします – Viteazul

+0

テーブルのスナップショットと期待する出力を教えてください。 – lU5er

答えて

5

のためのあなたは自分の現在の選択にmessageを追加することができます。

SELECT DISTINCT person_send_id, person_receive_id, message 
FROM `message` 
WHERE person_send_id = 21 OR person_receive_id = 21; 

また、タイトルとして機能するので、最新のものが欲しいと思います。

例えばORDER BY message_id DESC LIMIT 1

を追加します。

SELECT DISTINCT person_send_id, person_receive_id, message 
FROM `message` 
WHERE person_send_id = 21 OR person_receive_id = 21 
ORDER BY message_id DESC LIMIT 1; 
+0

どのような凡例。ありがとう、私はなぜ私はLIMITを考えなかったのか分からない – Viteazul

+1

@Viteazul Cool!うれしかったよ! –

関連する問題