我有这个查询从MySQL检索10($ limited)个查询,
"SELECT content.loc,content.id,content.title,
voting_count.up,voting_count.down
FROM
content,voting_count
WHERE names.id = voting_count.unique_content_id
ORDER BY content.id DESC $limit"
该查询对于已经在数据库中且已投票的帖子非常有用,但是不会显示新帖子。第一次有人投票对投票行进行“插入”。我想它们之所以不会被列出是因为没有可连接的unique_content_id。
如果我将查询更改为此:
"SELECT content.loc,content.id,content.title
FROM
content
ORDER BY content.id DESC $limit"
它有效,但我无法访问voting_count.up和voting_count.down行。如何在单个查询中访问这两个信息?这可行吗?
如果其中一个表中可能不存在某些数据,INNER JOIN
则应使用LEFT JOIN
:
SELECT content.loc,content.id,content.title,
-- USE function COALSESCE will show 0 if there are no
-- related records in table voting_count
COALESCE(voting_count.up, 0) as votes_up,
COALSESCE(voting_count.down, 0) as voted_down
FROM content LEFT JOIN voting_count
ON content.id = voting_count.unique_content_id
ORDER BY content.id DESC
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句