|
|
|
|
|
|
|
|
|
| 第 2 章 テーブルのジョイン |
| ||
外部ジョインの使用 | 前項のチュートリアルのジョインは、より正確には「内部ジョイン」と呼ばれ | ||||||||||||
| ます。 |
|
|
|
|
|
|
|
|
|
|
| |
| 外部ジョインを明示的に指定します。この場合は、GROUP BY 句も必要です。 | ||||||||||||
| SELECT | company_name, |
|
|
|
|
|
| |||||
| MAX( sales_order.id ),state |
|
|
|
|
|
| ||||||
| FROM customer |
|
|
|
|
|
|
|
|
|
| ||
| KEY LEFT OUTER JOIN sales_order |
|
|
|
|
|
| ||||||
| WHERE state = 'WA' |
|
|
|
|
|
| ||||||
| GROUP BY company_name, state |
|
|
|
|
|
| ||||||
| company_name |
| max(sales_order.id) |
| state | ||||||||
|
|
| |||||||||||
| Custom Designs |
| 2547 |
|
|
| WA |
| |||||
|
|
|
|
|
|
|
|
|
|
|
|
| |
| Its a Hit! |
|
| (NULL) |
|
| WA | ||||||
サブクエリの使用 | 在庫が少ない製品の注文項目をリストするには、次のコマンドを入力します。 | ||||||||||||
| SELECT * |
|
|
|
|
|
|
|
|
|
|
| |
| FROM sales_order_items |
|
|
|
|
|
| ||||||
| WHERE prod_id IN |
|
|
|
|
|
|
|
|
|
| ||
| ( SELECT id |
|
|
|
|
|
|
|
|
|
| ||
| FROM product |
|
|
|
|
|
|
|
|
|
| ||
| WHERE quantity < 20 ) |
|
|
|
|
|
| ||||||
| ORDER BY ship_date DESC |
|
|
|
|
|
| ||||||
|
| line_id |
|
| prod_id |
| quantity |
| ship_date | ||||
| id |
|
|
|
|
| |||||||
| 2082 |
| 1 |
|
| 401 |
| 48 |
|
|
|
| |
| 2053 |
| 1 |
| 401 |
| 60 |
|
|
|
| ||
| 2125 |
| 2 |
| 401 |
| 36 |
|
|
|
| ||
| 2027 |
| 1 |
| 401 |
| 12 |
|
|
|
| ||
| 2062 |
| 1 |
| 401 |
| 36 |
|
|
|
| ||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
カッコで囲まれたフレーズが、この文のサブクエリです。
( SELECT id FROM product
WHERE quantity < 20 )
サブクエリを使用すると、検索を 1 回のクエリだけで実行できるようになり ます。このため、在庫が少ない製品のリストをクエリで検索し、さらにその 製品の注文を別のクエリで検索する必要がなくなります。
このサブクエリは、製品テーブルの id カラムで WHERE 句の探索条件を満た すすべての値をリストします。
パフォーマンス&チューニング・ガイド | 29 |