【发布时间】:2016-07-26 01:31:08
【问题描述】:
我有三个表 - Ad(Id,AgentId,AdDesc,AdTitle,EmailId,ADate)、AdComment(ComId,email,comment,AdId) 和 MyLikes(LikeId,email,AdId)。在这里,我必须加入三个表并显示广告表的所有字段以及基于每个广告 ID(Ad.Id=AdComment.AdId)的 AdComment 表中的 cmets 数和基于每个广告 ID 的给定电子邮件的 MyLikes 的喜欢数(Ad.Id=MyLikes.AdId)。
当我刚加入广告和广告评论时,我使用了 -
SELECT * , (
SELECT COUNT( c.AdId )
) AS ComCount
FROM Ad a
LEFT JOIN AdComment c ON a.Id = c.AdId
GROUP BY a.Id
ORDER BY a.Id DESC
这工作正常。
当我加入 Ad 和 MyLikes 时,我使用了 -
SELECT a.Id, (
SELECT COUNT( * )
FROM MyLikes m
WHERE (
m.email = 'nik@gmail.com'
AND m.AdId = a.Id
)
) AS MyCount
FROM Ad a
LEFT JOIN MyLikes m ON a.Id = m.AdId
GROUP BY a.Id
这工作正常。
但是当我尝试所有三个表连接时它都不起作用,给出了一些错误的评论计数值。 为此,我使用了-
SELECT a.Id,a.AgentId,a.EmailId,a.AdTitle,a.AdDesc, (
SELECT COUNT(m.AdId)
FROM MyLikes m
WHERE (
m.email = 'nik@gmail.com'
AND m.AdId = a.Id
)
) AS MyCount,(
SELECT COUNT( c.AdId )
) AS ComCount
FROM Ad a
LEFT JOIN MyLikes m ON a.Id = m.AdId LEFT JOIN AdComment c ON a.Id = c.AdId
GROUP BY a.Id ORDER BY a.Id DESC
我怎样才能加入这三个表并得到想要的结果。
【问题讨论】:
-
请编辑您的问题并提供示例数据和所需结果。