我有2个简单的表
第一张表
Articles
================
ID
Title
Content
和第二张表
Article_Likes
================
ArticleID (FK)
UserID
Time
如果用户喜欢该文章(如果Article_Likes表中有一行),我想选择文章标题,内容和喜欢的时间
这是我的代码,它返回文章,喜欢时间OK。但是如果Article_Likes中没有行(他不喜欢),我会得到空的结果。
即使不喜欢,如何选择文章。但如果他喜欢,也选择喜欢的时间? 请帮忙。谢谢
SELECT
Article.ID,
Article.Title,
Article.Content,
Article_Likes.Time
FROM Articles
INNER JOIN Article_Likes ON Articles.ID = Article_Likes.PostID
WHERE Article.ID = (ArticleID)
AND Article_Likes.UserID = (UserID)
LIMIT 1
编辑此查询有效,请检查合成
SELECT Article.ID,
Article.Title,
Article.Content,
COALESCE(Article_Likes.Time,'NOT LIKED') AS Time
FROM Articles
LEFT JOIN Article_Likes ON Article.ID = Article_Likes.ArticleID AND Article_Likes.UserID = (UserID)
WHERE Article.ID = (ArticleID)
LIMIT 1
答案 0 :(得分:0)
而不是内部,使用左连接。由于内部联接显示两个表中都存在的值,因此只要您希望左侧(文章)表中的所有记录都使用LEFT JOIN。
SELECT
Article.ID,
Article.Title,
Article.Content,
Article_Likes.Time
FROM Articles
LEFT JOIN Article_Likes ON Posts.ID = Post_Likes.PostID
AND Post_Likes.UserID = (UserID)
WHERE Article.ID = (ArticleID)
答案 1 :(得分:0)
尝试:
SELECT
Article.ID,
Article.Title,
Article.Content,
COALESCE(Article_Likes.Time,'NOT LIKED') AS Time
FROM Articles
LEFT JOIN Article_Likes ON Article.ID = Article_Likes.ArticleID
WHERE Article.ID = (ArticleID)
LIMIT 1