0

私たちのチャット アプリケーションでは、次のようなケースがあります。1) 1 対 1 のチャットと 2) グループ チャットの 2 つのケースで、B という人物とチャットしている A という人物がいます。したがって、データベースのレコードは次のようになります。

表:コア

  id   name
   1    A
   2    B
   3    C

表:マスター

  id    core_id 
  1       1
  2       2

表:受信者

 id    core_id    master_id
  1       1        1 
  2       2        1
  3       1        2
  4       2        2
  5       3        2

したがって、受信者テーブルには、人物「A」のエントリが 2 つあります。ここでの問題は、'A' と 'B' がやり取りされる master_id = 1 フォームの受信者テーブルが必要なことです。ただし、このための受信者テーブルには 2 つのエントリがあります。そのIDを取得する方法は?

4

1 に答える 1

0

あなたが何を求めているのかは不明であり、テーブル名はこれを明確にするのに役立ちません。ただし、master_id のみに基づいて受信者テーブルからレコードを選択しており、クエリに名前を含めることができるように他のテーブルと結合する必要があると思われます。

したがって、これを念頭に置いて、次のことを試してください(注意:私はこれをテストしておらず、mysqlではなくOracleで作業しています)が:

select * 
from core c, master m, recipient r
where c.id = m.core_id
and   c.id = r.core_id
and   m.id = r.master_id
and   c.name = 'A'

そして、この SQL が最新の ANSI 標準に従っていないと文句を言う前に、それが私のやり方であり、私にとってはうまくいきます!

于 2012-07-20T10:59:06.393 に答える