내가 두 테이블 기본 SQL 삽입 문 접근
- 고객 (아이디 INT, 사용자 이름 VARCHAR)
- 주문 (CUSTOMER_ID INT, ORDER_DATE 날짜)
지금 내가 삽입 할을 감안할 때 고객 테이블에있는 고객 정보를 기반으로 주문 테이블로 변환합니다.
이 문제를 승인 할 수있는 몇 가지 방법이 있습니다.
먼저 고객 정보를 변수로 쿼리 한 다음 INSERT 문에서 사용할 수 있습니다.
DECLARE @Customer_ID int
SELECT @Customer_ID = id FROM Customer where username = 'john.smith'
INSERT INTO Orders (customer_id, order_date) VALUES (@Customer_ID, GETDATE())
두 번째 접근법은 INSERT 및 SELECT 쿼리 조합을 사용하는 것입니다.
INSERT INTO Orders (customer_id, order_date)
SELECT id, GETDATE() FROM Customers
WHERE username = 'john.smith'
제 질문은 속도와 오버 헤드의 관점에서 진행하는 더 좋은 방법이며 그 이유는 무엇입니까? 고객 테이블에서 많은 정보를 얻었 으면 두 번째 방법이 훨씬 좋습니다.
p.s. 기술 인터뷰 중 하나에서이 질문을 받았습니다.
인터뷰 질문에 어떻게 대답 했습니까? –
나는 그들에게 당신이했던 것과 비슷한 대답을주었습니다.그냥 모든 사람들의 의견을 듣고 싶었어. 답장을 보내 주셔서 감사합니다. –