SQLD 기출문제 예상문제 382번
다음 문제를 풀어보세요.
다음 중 아래 SQL의 실행결과를 고르시오.
[테이블 구조]
-- 고객 테이블
CREATE TABLE 고객 (
고객ID VARCHAR(10) PRIMARY KEY,
고객명 VARCHAR(50)
);
-- 상품 테이블
CREATE TABLE 상품 (
상품ID VARCHAR(10) PRIMARY KEY,
상품명 VARCHAR(100),
상품카테고리 VARCHAR(50)
);
-- 주문 테이블
CREATE TABLE 주문 (
주문ID VARCHAR(10) PRIMARY KEY,
고객ID VARCHAR(10),
상품ID VARCHAR(10),
주문일자 DATE,
FOREIGN KEY (고객ID) REFERENCES 고객(고객ID),
FOREIGN KEY (상품ID) REFERENCES 상품(상품ID)
);
[데이터 예시]
INSERT INTO 고객 (고객ID, 고객명) VALUES
('C001', '김철수'),
('C002', '이영희'),
('C003', '박민수');
INSERT INTO 상품 (상품ID, 상품명, 상품카테고리) VALUES
('P001', '노트북', '전자제품'),
('P002', '스마트폰', '전자제품'),
('P003', '키보드', '전자제품'),
('P004', '텀블러', '생활용품'),
('P005', '컵', '생활용품');
INSERT INTO 주문 (주문ID, 고객ID, 상품ID, 주문일자) VALUES
('O001', 'C001', 'P001', '2023-01-10'),
('O002', 'C001', 'P002', '2023-01-15'),
('O003', 'C002', 'P001', '2023-02-01'),
('O004', 'C002', 'P003', '2023-02-05'),
('O005', 'C003', 'P004', '2023-03-10'),
('O006', 'C001', 'P003', '2023-01-20'),
('O007', 'C002', 'P004', '2023-02-10');
[SQL 쿼리]
SELECT
A.고객명
FROM
고객 A
WHERE
NOT EXISTS (
SELECT 1
FROM 상품 B
WHERE B.상품카테고리 = '전자제품'
AND NOT EXISTS (
SELECT 1
FROM 주문 C
WHERE C.고객ID = A.고객ID
AND C.상품ID = B.상품ID
)
);