如何使用右外连接在mysql中将三个单独的列连接在一起?

时间:2017-11-14 00:35:35

标签: mysql sql

编写一个SQL RIGHT OUTER JOIN语句,该语句将blog.posts表中的user_id列,blog.users表的name列和blog.posts表的body列连接在一起。

这是我到目前为止所做的:

USE blog;
SELECT posts.user_id, posts.body, users.name
  FROM posts
    RIGHT OUTER JOIN users ON
    posts.user_id, posts.body = users.name;

以下是带有列

的表格
posts: id,body,user_id
users: id, name

如何调整此代码才能生效?

4 个答案:

答案 0 :(得分:1)

以下是RIGHT JOIN的语法。

SELECT column_name(s)
FROM table1
RIGHT JOIN table2 ON table1.column_name = table2.column_name;

有关详细信息,请转到此链接。

https://www.w3schools.com/sql/sql_join_right.asp

希望这有帮助。

答案 1 :(得分:1)

坚持正确的加入然后:

SELECT posts.user_id, posts.body, users.name
  FROM posts
    RIGHT OUTER JOIN users ON posts.user_id = users.id;

但是,更常规的是:

SELECT posts.user_id, posts.body, users.name
  FROM users
    LEFT OUTER JOIN posts ON users.id = posts.user_id;

但是,我希望你没有一个没有用户的博客,所以我的猜测是它真的应该是一个内部联接:

SELECT posts.user_id, posts.body, users.name
  FROM posts
    INNER JOIN users ON posts.user_id = users.id;

答案 2 :(得分:0)

您可以尝试以下方法:

SELECT posts.user_id, posts.body, COALESCE(users.name, 'Unknown') AS user_name
  FROM Posts
       LEFT JOIN Users
          ON Posts.user_id = Users.id

答案 3 :(得分:0)

这对我有用

USE blog;
SELECT posts.user_id, posts.body, users.name
FROM posts
RIGHT OUTER JOIN users ON
posts.user_id = users.id;

希望这会有所帮助