副問い合わせを使う

最初はJOINだと思っていたら、いきなり副問い合わせだったので予想外。

SELECT
  *
FROM
  Products
WHERE
  ProductID NOT IN
  (
    SELECT
      ProductID
    FROM
      Sales
  )
;

練習問題でこんな使い方が出てきました。

SELECT
  SaleID
, Quantity
, CustomerID
, (
   SELECT
     CustomerName
   FROM
     Customers
   WHERE
     CustomerID = Sales.CustomerID
  ) AS 顧客名
FROM
  Sales
WHERE
  Quantity >= 100
;

いままでは以下のような書き方しか思いつかなかったので、一つ新しい方法を覚えることができました。

SELECT
  S.SaleID
, S.Quantity
, S.CustomerID
, C.CustomerName AS 顧客名
FROM
  Sales S, Customers C
WHERE
  S.CustomerID = C.CustomerID
  AND
  Quantity >= 100
;