В этом учебном материале вы узнаете, как использовать SQL FROM с синтаксисом и примерами.
Описание
SQL оператор FROM используется для перечисления таблиц и любых объединений, необходимых для SQL оператора.
Синтаксис
Синтаксис оператора FROM в SQL:
[ { INNER JOIN
| LEFT [OUTER] JOIN
| RIGHT [OUTER] JOIN
| FULL [OUTER] JOIN } table2
ON table1.column1 = table2.column1 ]
Параметры или аргументы
- table1 и table2
- Это таблицы, используемые в операторе SQL. Две таблицы объединяются на основе table1.column1 = table2.column1.
Примечание
- В SQL операторе FROM должна быть указана хотя бы одна таблица.
- Если в операторе FROM указаны две или более таблиц, эти таблицы обычно объединяются с использованием объединений INNER или OUTER.
Пример - оператор FROM c одной таблицей
Мы начнем с рассмотрения того, как в SQL-запросе использовать FROM, в котором указана только одна таблица.
В этом примере у нас есть таблица suppliers со следующими данными:
| supplier_id | supplier_name | city | state |
|---|---|---|---|
| 100 | Yandex | Moscow | Russian |
| 200 | Lansing | Michigan | |
| 300 | Oracle | Redwood City | California |
| 400 | Bing | Redmond | Washington |
| 500 | Yahoo | Sunnyvale | Washington |
| 600 | DuckDuckGo | Paoli | Pennsylvania |
| 700 | Qwant | Paris | France |
| 800 | Menlo Park | California | |
| 900 | Electronic Arts | San Francisco | California |
Введите следующий SQL оператор:
|
1 2 3 4 |
SELECT * FROM suppliers WHERE supplier_id < 400 ORDER BY city DESC; |
Будет выбрано 3 записи. Вот результаты, которые вы должны получить:
| supplier_id | supplier_name | city | state |
|---|---|---|---|
| 100 | Yandex | Moscow | Russian |
| 200 | Lansing | Michigan | |
| 300 | Oracle | Redwood City | California |
В этом примере мы использовали оператор FROM для отображения таблицы suppliers. В этом запросе нет выполненных соединений, так как в FROM мы перечислили только одну таблицу.
Пример - две таблицы в операторе FROM (INNER JOIN)
Давайте посмотрим, как использовать предложение FROM, чтобы INNER JOIN (объединить) вместе две таблицы.
В этом примере у нас есть таблица products со следующими данными:
| product_id | product_name | category_id |
|---|---|---|
| 1 | Pear | 50 |
| 2 | Banana | 50 |
| 3 | Orange | 50 |
| 4 | Apple | 50 |
| 5 | Bread | 75 |
| 6 | Sliced Ham | 25 |
| 7 | Kleenex | NULL |
И таблица categories со следующими данными:
| category_id | category_name |
|---|---|
| 25 | Deli |
| 50 | Produce |
| 75 | Bakery |
| 100 | General Merchandise |
| 125 | Technology |
Выполните следующий SQL-оператор:
|
1 2 3 4 5 |
SELECT products.product_name, categories.category_name FROM products INNER JOIN categories ON products.category_id = categories.category_id WHERE product_name <> 'Pear'; |
Будет выбрано 5 записей. Вот результаты, которые вы должны получить:
| product_name | category_name |
|---|---|
| Banana | Produce |
| Orange | Produce |
| Apple | Produce |
| Bread | Bakery |
| Sliced Ham | Deli |
В этом примере оператора FROM используется объединение двух таблиц - products и categories. В этом случае мы используем FROM, чтобы указать INNER JOIN между таблицами products и categories на основе столбца category_id в обеих таблицах.
Пример - две таблицы в операторе FROM (OUTER JOIN)
Рассмотрим как использовать FROM, когда мы соединяем вместе две таблицы, используя OUTER JOIN. В этом случае мы рассмотрим LEFT OUTER JOIN.
Давайте использовать те же таблицы products и categories, что и в примере INNER JOIN выше, но на этот раз мы объединим таблицы, используя LEFT OUTER JOIN. Введите следующий SQL оператор:
|
1 2 3 4 5 |
SELECT products.product_name, categories.category_name FROM products LEFT OUTER JOIN categories ON products.category_id = categories.category_id WHERE product_name <> 'Pear'; |
Будет выбрано 6 записей. Вот результаты, которые вы должны получить:
| product_name | category_name |
|---|---|
| Banana | Produce |
| Orange | Produce |
| Apple | Produce |
| Bread | Bakery |
| Sliced Ham | Deli |
| Kleenex | NULL |
В этом примере FROM используется LEFT OUTER JOIN с таблицами products и categories на основе category_id в обеих таблицах.
Теперь в нашем наборе результатов появится последняя запись с product_name 'Kleenex' со значением NULL для category_name. Эта запись не появилась в наших результатах, когда мы выполняли INNER JOIN.