0

私は2つのテーブルを持っています

T1

ID | Name | IMAGE
------------------------
1    Peter  pic_111.jpg
2    Mark   pic222.jpg

T2

ID1 | ID2 | message | timestamp

PeterがMarkにメッセージを送信する場合、PeterはID1およびMarkはID2であり、MarkがPeterにメッセージを送信する場合、MarkはID1およびpeterID2です。

ID1とID2のT1から画像を選択したい

マークから誰かへ、または誰かからマークへのすべてのメッセージは、マークからまたはマークへ select ID1,ID2, message from T2 where ID1=2 OR ID2=2送信されたすべてのメッセージを返します

このクエリにID1とID2の画像を含めるにはどうすればよいですか?

select ID1, ID2, message, image from T1, T2 where ID1=2 OR ID2=2 T1.ID=ID1UID1とuid2のイメージが必要なので間違っています...

そのため、メッセージを終了マークした人、またはメッセージを送信したマークを付けた人の写真を表示することが可能になります...

4

2 に答える 2

2

の各送信者T1のそれぞれを取得するには、2回参加する必要があります。IDT2

SELECT  a.*,
        b.Image as ID1IMAGE, -- alias is needed to avoid ambiguous columns
        c.Image as ID2Image
FROM    T2 a
        INNER JOIN T1 b
            ON a.ID1 = b.ID
        INNER JOIN T1 c
            ON a.ID2 = c.ID
WHERE   2 IN (a.ID1, a.ID2)   -- the condition can be done like this.

結合についてさらに知識を深めるには、以下のリンクにアクセスしてください。

于 2013-03-03T12:15:08.290 に答える
0

このようにSQLでサブクエリを使用できます

IDが入っているT1から画像を選択します(ID1、ID2、ID1=2またはID2=2のT2からのメッセージを選択します)

後で使用するかどうかはわかりませんが、IN、ANY、ALLを使用してみることができます...

于 2013-03-03T12:24:29.470 に答える