SELECT OWN.OWNERLASTNAME "Last Name", ORD.ITEMDESIRED "Item Ordered"
FROM ORDERS ORD, ANTIQUEOWNERS OWN
WHERE ORD.OWNERID = OWN.OWNERID
AND ORD.ITEMDESIRED IN (SELECT ITEM FROM ANTIQUES);
Last Name Item Ordered
--------- ------------
Smith Table
Smith Desk
Akins Chair
Lawson Mirror
OWN、ORD 為資料表別名,簡化欄位參考(OWN.OWNERLASTNAME)並消除同名欄位歧義"Last Name"、"Item Ordered" 為輸出標題ORDERS 先列出(主要查詢對象),ANTIQUEOWNERS 僅供補充姓名資訊ORD.OWNERID = OWN.OWNERID 連接兩表SELECT ITEM FROM ANTIQUES 回傳所有古董品項清單AND 強制子查詢執行(等同 = ANY 或 = SOME)ITEMDESIRED 必須在清單中才輸出-- 以下三者邏輯相同
WHERE column IN (subquery)
WHERE column = ANY (subquery)
WHERE column = SOME (subquery)
對 ORDERS 每一列:
ITEMDESIREDITEM 清單比對ANTIQUEOWNERS 取姓名IN (subquery) 子查詢若回傳大量列,考慮改用 EXISTS 或 JOINWHERE 條件時會全表掃描,必要時加入篩選