select语句的列数不同

1bqhqjot  于 2021-06-21  发布在  Mysql
关注(0)|答案(2)|浏览(327)

我正在做一个小php网站,你可以在其中跟随其他人,然后看到他们的帖子。我有三个表-1.posts,它有post\u id和author\u id 2.follow,它有following和follower 3.users,它有id,username和所有其他东西。我在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

我找了几个小时,但找不到与我的问题相匹配的答案。我将非常感谢一个更好的以上代码版本的答案。
提前谢谢。

6jjcrrmo

6jjcrrmo1#

将两个查询合并在一起时,两个查询上的列必须匹配。
从中选择 posts,follow,users 在第一个查询和 posts,users 在第二天。
这行不通。
从mysql手册:
第一个select语句中的列名用作返回结果的列名。在每个select语句的相应位置列出的选定列应具有相同的数据类型

bjg7j2ky

bjg7j2ky2#

也许加入会对你更好。。。像这样:

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

相关问题