我在加入2个表时遇到问题
这是我的第一个名为“users”的表
user_id user_username user_password user_name
1 admin admin123 john
3 test test123 alex
这是我的第二张表“帖子”
post_id post_content post_userid
1 Lorem ipsum .. 1
2第二篇文章.. 3
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 | 3 | test | test123 | alex
我已经尝试过了
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
答案 0 :(得分:0)
SELECT * FROM posts AS p LEFT JOIN users AS u ON u.user_id = p.post_userid
答案 1 :(得分:0)
SELECT
post_id,
post_content,
post_userid,
user_id,
user_username,
user_password,
user_name
FROM posts
INNER JOIN users ON user_id = post_userid
答案 2 :(得分:0)
因为我认为你的选择应该有效,我怀疑你的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));
你也应该检查你的应用程序是否将这些空格/空格插入到表中并停止这样做。
答案 3 :(得分:0)
Select * From posts p
INNER JOIN users u
ON u.user_id = p.post_userid