2021년 4월 9일 TIL(Database)

Ji Taek Lim·2021년 4월 9일
0

한달전에는 아무것도 몰랐는데

이제는 조금 알것같다.

mysql보면서 했는데

그래도 사이트에 렌더링이 안된다.

그런데 어떻게 해볼까.


const db = require("../db");

module.exports = {
  orders: {
    get: (userId, callback) => {
      // TODO: 해당 유저가 작성한 모든 주문을 가져오는 함수를 작성하세요

      const sql = `SELECT orders.id, orders.created_at, orders.total_price, order_items.order_quantity, items.image, items.name, items.price
      FROM orders 
      LEFT JOIN order_items ON (orders.id = order_items.order_id)
      LEFT JOIN items ON (order_items.item_id = items.id)
      LEFT JOIN users ON (orders.user_id = users.id)
      WHERE (users.id =${userId})`;

      db.query(sql, (error, result) => {
        console.log(result);
        callback(error, result);
      });
    },

    post: (userId, orders, totalPrice, callback) => {
      // TODO: 해당 유저의 주문 요청을 데이터베이스에 생성하는 함수를 작성하세요
      // orders: [{ quantity: 1, itemId: 2 },{ quantity: 1, itemId: 4 }]

      let sql1 = `INSERT INTO orders (user_id, total_price) VALUES (${userId}, ${totalPrice})`;
      db.query(sql1, (err, result) => {
        console.log(result);
        let sql2 = `INSERT INTO order_items (order_id, item_id, order_quantity) VALUES ?`;
        let params = orders.map((el) => [
          result.insertId,
          el.itemId,
          el.quantity,
        ]);
        console.log(params);

        db.query(sql2, [params]);
        callback(err, result);
      });
    },
  },
  items: {
    get: (callback) => {
      // TODO: Cmarket의 모든 상품을 가져오는 함수를 작성하세요
      const queryString = "SELECT * FROM items";

      db.query(queryString, (err, result) => {
        console.log(result);
        callback(err, result);
      });
    },
  },
};

PRIMARY KEY FOREIGN KEY

https://www.youtube.com/watch?v=8kDs8QkFI2Y&t=34s

profile
임지택입니다.

0개의 댓글