TIL 21.04.08 (IM 7주-5일차)(IM 35일차)

안함·2021년 4월 9일
0

TIL

목록 보기
72/165
post-thumbnail

오늘 한 일

  • Sprint
    • Cmarket databse

그냥

  • 오늘은 서버에서 mysql 연결해서 클라이언트에서 들어온 요청을 서버에서 받아 쿼리요청을 해보는 스프린트를 진행하였다. 오늘 스프린트를 진행하면서 발생했던 이슈는 중복 컬럼이다. items 테이블에 id라는 컬럼이있고, users 컬럼에도 id 라는 컬럼이 있어서 둘이 중복되었다. select from 조인조인조인 으로 했는데 컬럼명이 중복되서 users 에 있는 id를 읽어야되는 계속 items에 있는 id를 가져왔다 그래서 명시적으로 , user.id 로 바꿔서 하니까 성공 그래서 여기서 의문이 든것은 * 해도 user.id가 있는데 왜 읽지 못하나... 그것은 컬럼이 중복되면 가장 마지막에 나온걸로 가져온다는것이다

(참고: PHP에서 JOIN된 SQL을 배열 형태로 가져올 때 중복되는 컬럼명이 있으면 나중에 조인된 쪽의 컬럼만 가져오며 나머지 중복된 이름의 컬럼명은 가져오지 않음)

  • 아 물론 php 에서인데.. 아직 nodejs 에있는 mysql 라이브러리도 그런지 찾진 못했음.. 근데 비슷할꺼라고 생각함 그래서 그냥 쿼리를 필요한 컬럼만 불러오게 명시적으로 수정해주
SELECT orders.id, items.image, items.name,
                          order_items.order_quantity, items.price, orders.total_price,created_at
                      FROM users
                        JOIN orders
                          ON orders.user_id = users.id
                        JOIN order_items
                          ON order_items.order_id = orders.id
                        JOIN items
                          ON items.id = order_items.item_id
                            WHERE orders.user_id = # ${userId}

profile
✨ Frontend Developer 🧑‍💻

0개의 댓글