Limit columns in right table in LEFTJOIN in MySQL
I have the following 2 tables.
tb_Posts
--------
PostId, PostName
tb_PostCategories
------------------
PostId, PostCategoryName
I want to join both of these tables, however I would like to display all columns and records in tb_Posts, but only show PostCategoryName columns from tb_PostCategories, even if the entry for tb_Posts.PostId in tb_PostCategories exists or not.
So I made this query but I am getting SQL error
SELECT *
FROM
(SELECT a.PostId, a.PostName from tb_Posts a) y
LEFT JOIN tb_PostCategories z USING (y.PostId)
thank
+3
source to share
1 answer
*
gets all columns.
You can do:
SELECT y.*, z.PostCategoryName
FROM (SELECT a.PostId, a.PostName FROM tb_Posts a) y
LEFT JOIN tb_PostCategories z
ON y.PostId = z.PostId;
It doesn't really require a subquery, so to keep things simpler:
SELECT posts.*, cat.PostCategoryName
FROM tb_Posts posts
LEFT JOIN tb_PostCategories cat
ON cat.PostId = posts.PostId;
+3
source to share