My sample data
Table ‘posts’:
| id (string) | Author (int)| desc (string)|
| — | — |—|
| bac| 111| Hello|
| bak| 113| world|
table ‘rating_info’
| post_id(string)| rating (int)|
| — | — |
| bak| 111 |
| bak| 112 |
| bak| 114 |
| bac | 114|
| bac | 114|
My end goal:
Somehow combine both tables, Select everything from Posts, but only select the COUNT from rating_info.
what i have tried:
SELECT (SELECT *
AS posts
FROM posts
WHERE posts.id= 'bac') AS posts,
(SELECT Count(rating_info.post_id) AS count2
FROM rating_info
WHERE rating_info.post_id = 'bac') AS hits
error result:
#1241 – Operand should contain 1 column(s)
>Solution :
The error comes from trying to display many columns AS posts.
You should use join:
SELECT *, Count(rating_info.post_id) AS count2 FROM posts
INNER JOIN rating_info ON rating_info.post_id = posts.id
WHERE posts.id = 'bac';
This displays all columns from both tables + the count, you can switch the * to specific columns instead.