0

このクエリの何が問題なのかわかりません。次のようなエラーが発生します。

" from句のarticle_id列があいまいです"

テーブル名のエイリアスと関係があるかもしれないことは理解していますが、修正方法がわかりません。クエリが小さければ、何かを解決できるかもしれませんが、それは私にはかなり混乱し、何かを変更して修正しようとするたびに、何か他のものが停止します-最初に尋ねると思いました。

SELECT bt.topic_title, f.article_id, p.photo_id, ba.title, ba.slug,
IFNULL(c.cnt,0) comments, IFNULL(ph.cnt,0) photos, IFNULL(v.cnt,0) videos
FROM blog_article_followers AS f
LEFT OUTER JOIN (
    SELECT article_id, COUNT(comment_id) as cnt
    FROM blog_comments
    GROUP BY article_id) c
    ON f.article_id = c.article_id
LEFT OUTER JOIN (" _
    SELECT article_id, COUNT(photo_id) as cnt
    FROM photos
    GROUP BY article_id) ph
    ON f.article_id = ph.article_id
LEFT OUTER JOIN (
    SELECT article_id, COUNT(video_id) as cnt
    FROM videos
    GROUP BY article_id) v
    ON f.article_id = v.article_id
LEFT JOIN blog_topics bt ON f.topic_id = bt.topic_id
LEFT JOIN blog_articles AS ba USING (article_id)
LEFT JOIN photos AS p USING (article_id)
WHERE f.member_id = 100 AND p.cover = 1
ORDER BY f.follow_date DESC;
4

2 に答える 2

1

これを置き換えてみてください:

LEFT JOIN blog_articles AS ba USING (article_id)
LEFT JOIN photos AS p USING (article_id)

これとともに

LEFT JOIN blog_articles AS ba ON f.article_id = ba.article_id
LEFT JOIN photos AS p ON f.article_id = photos.article_id
于 2012-08-11T00:37:49.333 に答える
0

列の名前を変更する必要があります

LEFT JOIN photos AS p USING (p.article_id)

または、どちらのテーブルarticle_idに属するか

于 2012-08-11T00:32:33.753 に答える