britus Posted April 20, 2020 Share Posted April 20, 2020 I have two table - categories - cat-id, cat-title posts - post-id, post-cat-id, post-title I want to search through all rows in 'posts' and get the number of posts based on each category in 'categories', echo 'cat-title' - number of posts if no posts then echo 'cat-title' - "no posts". posts are assigned a post-cat-id relative to cat-id. I tried using joins WHERE cat-id = post-cat-id AND cat-title = 'a-category' but that only shows results when posts are assigned 'a-category'. If that category does not exist in 'posts' then nothing shows How, in your opinion, should I approach this? Thanks Quote Link to comment Share on other sites More sharing options...
Barand Posted April 20, 2020 Share Posted April 20, 2020 Use a LEFT JOIN SELECT cat_title , CASE WHEN COUNT(post_id) = 0 THEN 'No posts' ELSE COUNT(post_id) END as total FROM categories c LEFT JOIN posts p ON c.cat_id = p.post_cat_id GROUP BY c.cat_title; I would also recommend using using valid column names. Quote Link to comment Share on other sites More sharing options...
britus Posted April 20, 2020 Author Share Posted April 20, 2020 Thanks for that. I'll give it a go this evening. What did you mean by "I would also recommend using using valid column names"? I was trying to keep everything descriptive so I have a better understanding of what I am learning. Thanks Quote Link to comment Share on other sites More sharing options...
Barand Posted April 20, 2020 Share Posted April 20, 2020 Identifiers names should contain [a-z][A-Z][0-9]_ characters. Hyphens are not valid. user-name is interpreted as user minus name Quote Link to comment Share on other sites More sharing options...
britus Posted April 20, 2020 Author Share Posted April 20, 2020 understood. Thank you. Quote Link to comment Share on other sites More sharing options...
britus Posted April 21, 2020 Author Share Posted April 21, 2020 Excellent. It worked great Barand. Thank you Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.