【MySQL必知必会】第14章:サブクエリ

914 ワード

14.1サブクエリ
サブクエリは、他のクエリにネストされたクエリです.
SELECT cust_name, cust_contact
FROM customers
WHERE cust_id IN (SELECT cust_id
                     FROM orders
                     WHERE order_num IN (SELECT order_num
                                        FROM orderitems
                                        WHERE prod_id = 'TNT2'));
  • WHERE句でサブクエリを使用すると、強力で柔軟なSQL文を記述できます.
  • ネスト可能なサブクエリの数には制限はありませんが、実際の使用ではパフォーマンスの制限により、サブクエリをあまりネストできません.

  • 14.2ワードネタ検索
    サブクエリ文を直接ネストできるほか、サブクエリのフィールドをネストして取得することもできます.
    SELECT cust_name,
            cust_state,
            (SELECT COUNT(*)
            FROM orders
            WHERE orders.cust_id = customers.cust_id) AS orders
    FROM customers
    ORDER BY cust_name;
    
  • 注意すべきは、ここでは完全限定列名「order.」を使用していることです.データベースがフィールド
  • をすばやく配置できるようにする
  • 完全修飾カラム名を使用しない場合、データの他のテーブルに類似のcust_が存在する場合idのネーミングが同じ場合,他の結果
  • を容易に検索できる.