Операторы SELECT имеют разное количество столбцов

Я делаю небольшой сайт php, на котором вы можете следить за другими, а затем просматривать их посты.
У меня есть три таблицы
1.Posts, в котором есть post_id и author_id
2. следовать, который имеет последователей и последователей
3.users, который имеет идентификатор, имя пользователя и все остальное. Я пробую следующее в sql-

SELECT * FROM posts,follow,users WHERE posts.author_id=users.id AND users.id=follow.following AND follow.follower='$id' UNION SELECT * FROM posts,users WHERE posts.author_id=users.id AND users.id='$id'

Где $ id — это идентификатор пользователя, вошедшего в систему.

Он отображает следующую ошибку:

#1222 - The used SELECT statements have a different number of columns

Я искал часы, но не могу найти ответы, соответствующие моему запросу.
Я буду очень признателен за ответ с лучшей версией приведенного выше кода.

Заранее спасибо.

-2

Решение

Возможно, JOIN будет служить вам лучше … что-то вроде этого:

SELECT * FROM posts
JOIN users on posts.author_id=users.id
JOIN followers on users.id=follow.following
WHERE follow.follower='$id'
0

Другие решения

Когда вы объединяете два запроса вместе, столбцы на обоих должны совпадать.

Вы выбираете из posts,follow,users по первому запросу и posts,users На втором.

это не сработает.

Из руководства по MySQL:

Имена столбцов из первого оператора SELECT используются в качестве имен столбцов для возвращаемых результатов. Выбранные столбцы, перечисленные в соответствующих позициях каждого оператора SELECT, должны иметь одинаковый тип данных

0

По вопросам рекламы [email protected]