Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql SQL将两个表连接在一起_Mysql_Sql_Sql Server_Join - Fatal编程技术网

Mysql SQL将两个表连接在一起

Mysql SQL将两个表连接在一起,mysql,sql,sql-server,join,Mysql,Sql,Sql Server,Join,我在连接两个表时遇到问题 这是我的第一个名为“users”的表 用户id用户用户名用户密码用户名 1名管理员123 john 3测试123 alex 这是我的第二张表“posts” post\u idpost\u内容post\u用户id 1同侧眼线。。1 2秒后。。三, 我想这样展示: 我已经试过了 SELECT * FROM posts INNER JOIN users ON(post_userid = user_id) 但这只显示了第一个帖子 然后我试着 SELECT * FROM p

我在连接两个表时遇到问题

这是我的第一个名为“users”的表

用户id用户用户名用户密码用户名
1名管理员123 john
3测试123 alex

这是我的第二张表“posts”

post\u idpost\u内容post\u用户id
1同侧眼线。。1
2秒后。。三,


我想这样展示:
我已经试过了

SELECT * FROM posts INNER JOIN users ON(post_userid = user_id)
但这只显示了第一个帖子

然后我试着

SELECT * FROM posts FULL OUTER JOIN users ON(post_userid = user_id)
结果是这样的

post_id | post_content   | post_userid | user_id | user_username | user_password | user_name
--------|----------------|-------------|---------|---------------|---------------|----------
1       | Lorem ipsum..  | 1           | 1       | admin         | admin123      | john
2       | Second post .. | 3           | NULL    | NULL          | NULL          | NULL
NULL    | NULL           | NULL        | 3       | test          | test123       | alex

因为我认为你的选择应该有效,我怀疑你的ID中有字符字段。因此,我建议您尝试以下加入方式:

SELECT * 
  FROM posts 
 INNER JOIN 
       users 
    ON (rtrim(ltrim(post_userid)) = ltrim(rtrim(user_id)));
如果这样做有效,您应该像这样清理您的ID:

update posts
set post_userid = ltrim(rtrim(post_userid));

update users
set user_id = ltrim(rtrim(user_id));

此外,您还应该检查应用程序是否将这些空格/空白插入到表中,并阻止它这样做。

您确实试图设置问题的格式。非常感谢。但是您可以使用编辑器中的“代码”按钮
{}
来设置更好的格式。您的选择应该可以工作。我怀疑post_userid或user_id(或两者)是字符字段,其中一个包含空格Hehe,是的,我真的试图解释它,所以你们可以理解我想做的;-)我会注意@BrettSchneiderNope whitespace@BrettSchneiderWell,这很有帮助,但它没有输出用户2(alex)试试这个:当你离开后,从用户中选择*作为p在u.user_id=p.post_userid会改变加入帮助的顺序吗?如果你只得到一行,可能是你的用户id在posts表中不匹配。。我是瞎猜,因为我没有相同的数据库来测试它。请尝试使用完全连接运行上述查询,并让我们知道结果。您可以将这些选择的输出发送给我:
select CAST(post_userid AS varbinary(max))
从用户中选择CAST(用户id为varbinary(max))
Select * From posts p
INNER JOIN users u
ON u.user_id = p.post_userid
SELECT * 
  FROM posts 
 INNER JOIN 
       users 
    ON (rtrim(ltrim(post_userid)) = ltrim(rtrim(user_id)));
update posts
set post_userid = ltrim(rtrim(post_userid));

update users
set user_id = ltrim(rtrim(user_id));
Select * From posts p
INNER JOIN users u
ON u.user_id = p.post_userid