灏天阁

Node/Koa2[13]: sequelize连表查询

· Yin灏

src/select.js

const { Blog, User } = require("./model");
!(async function () {
  // 连表查询 1
  const blogListWithUser = await Blog.findAndCountAll({
    order: [["id", "desc"]],
    include: [
      {
        model: User,
        attributes: ["userName", "nickName"],
        where: {
          userName: "zhangsan",
        },
      },
    ],
  });
  console.log(blogListWithUser.count);
  console.log(
    blogListWithUser.rows.map((blog) => {
      const blogVal = blog.dataValues;
      blogVal.user = blogVal.user.dataValues;
      return blogVal;
    })
  );
  // 连表查询 2
  const userListWithBlog = await User.findAndCountAll({
    attributes: ["userName", "nickName"],
    include: [
      {
        model: Blog,
      },
    ],
  });
  console.log(userListWithBlog.count);
  console.log(
    userListWithBlog.rows.map((user) => {
      const userVal = user.dataValues;
      userVal.blogs = userVal.blogs.map((blog) => blog.dataValues);
      return userVal;
    })
  );
})();

- Book Lists -