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
        )
    );