如何从一个表中获取所有行并根据第一个表从其他表中选择行?

时间:2013-06-07 16:44:37

标签: sql join inner-join outer-join

我有一个表一个表消息,其他表是图像。我想从消息中获取所选行的图像数据(想法是我想显示存储在其他表“IMAGE”中的发送者的图像,并且消息存储在其他表“消息”中 请帮忙 。这不起作用

select  msg.Uid, msg.Fid, msg.Message, img.ImagePath, img.Uid 
FROM Message msg left OUTER JOIN Image img 
ON 
msg.Uid=img.Uid 

1 个答案:

答案 0 :(得分:0)

我们需要了解有关表的更多信息,但只需查看列名,您似乎使用了错误的Uid。如果你有一对多(因为你说“来自发件人的图像”)关系从Message到Image,并且每个表都有自己的Uid,那么在Image表上你应该有一个指向Uid的外键消息,查询看起来像这样:

SELECT  msg.Uid, msg.Fid, msg.Message, img.ImagePath, img.Uid 
FROM    Message msg 
        LEFT JOIN Image img ON msg.Uid = img.MessageUid