SELECT 个语句有不同的列数

SELECT statements have different number of columns

我正在制作一个小型 php 网站,您可以在其中关注其他人,然后查看他们的 post。 我有三张桌子- 1.Posts,其中有 post_id 和 author_id 2.follow,其中有 following 和 follower 3.users,其中包含 ID、用户名和所有其他内容。我在 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 是登录用户的 ID。

显示如下错误-

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

我已经搜索了几个小时,但找不到与我的查询相匹配的答案。 我将非常感谢上面代码的更好版本的答案。

提前致谢。

将两个查询联合在一起时,两者的列必须匹配。

你 select 来自 posts,follow,users 第一个查询和 posts,users 第二个。

这行不通。

From the mysql manual:

第一个 SELECT 语句中的列名用作返回结果的列名。每个SELECT语句相应位置列出的选定列应具有相同的数据类型

也许 JOIN 会更好地为您服务...像这样:

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