我有一个Android应用程序,有2个表,一个表存储帖子,另一个表存储帖子的图像,如果它有图像,更改不是所有帖子都有图像,如果帖子有图像其主键将被存储在外键表中,当加载帖子时我必须得到所有帖子与图像相关或不然后检查图像表以查看哪些帖子有图像并将图像添加到下面的帖子是我的图形概述表
发布表
`|post_id |post | post_description|
|--------|-----|-----------------|
| | | |`
图像表
`|img_id |fk_postID | imagePath |
|--------|----------|-----------------|
| | | |`
我本可以使用像
Query = "SELECT post_id, post, post_description, imagePath FROM PostTable,
ImageTable, Where PostTable.post_id = ImageTable.fk_postID;
但是此查询仅返回包含图片的帖子并伪造没有图片的帖子,如何才能将所有帖子与图像一起使用?提前谢谢。
答案 0 :(得分:1)
SELECT pt.post_id, pt.post, pt.post_description, im.imagePath
FROM PostTable pt
left join ImageTable im
on im.fk_postID=pt.post_id
它会带来那些没有图像的帖子的右表(ImageTable)。
使用表别名(pt
和im
)。这有助于明确哪一列来自第一行,以防两者中有共同的列名,加上少一点的输入。
未测试
答案 1 :(得分:0)
尝试使用左连接,这将导致左表中的所有条目和右表中的匹配条目。
SELECT posttable.postid,posttable.post,posttable.postdescription, imagetable.imageid,imagetable.fkpostid,imagetable.imagepath
FROM posttable
LEFT JOIN imagetable
ON posttable.postid=imagetable.fkpostid
ORDER BY posttable.postid;
代码应该是这样的。