У меня есть три таблицы: Ad (Id, AgentId, AdDesc, AdTitle, EmailId, ADate), AdComment (ComId, электронная почта, комментарий, AdId) и MyLikes (LikeId, email, AdId). Здесь мне нужно объединить три таблицы и отобразить все поля таблицы объявлений вместе с количеством комментариев из таблицы AdComment на основе каждого объявления (Ad.Id = AdComment.AdId) и количества понравившихся из MyLikes на основе данного письма для каждого объявления. (Ad.Id = MyLikes.AdId).Соедините три таблицы с группой, чтобы получить подсчет
Когда я присоединился объявление и комментарий Ad Я -
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 = '[email protected]'
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 = '[email protected]'
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
Как я могу соединить эти три таблицы и получить желаемый результат.
Пожалуйста, отредактируйте ваш вопрос и предоставите данные образца и желаемые результаты. –