我有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和peter ID2,
我想从T1为ID1和ID2选择图像
所有邮件从标记到某人或从某人标记到标记
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=ID1
会出错,因为我需要UID1和uid2的图片......
因此,可以显示结束标记消息或标记发送消息的人的图片......
答案 0 :(得分:2)
您需要加入T1
两次才能获得ID
上每位发件人的相应T2
。
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.
要进一步了解联接,请访问以下链接:
答案 1 :(得分:0)
您可以在SQL中使用子查询
从T1中选择图像,其中id为(选择ID1,ID2,来自T2的消息,其中ID1 = 2或ID2 = 2)
我不确定在之后使用,但你可以尝试使用IN,ANY,ALL ...