Добавить в избранное   Сделать стартовой   Главная   E-mail   Форум   Мой блог 
    ON-Line консультация по поддержке баз данных Oracle SQL Server Mysql PostgreSQL.
Главное меню
Главная
Новости
Скачать
Курсы
Работа для АБД
Роль АБД (SYSDBA)
Карта сайта
XML - Карта сайта
Автостекла
Форум SYSDBA
Строительные материалы
Pастения
Контакты
Авторизация
FAQ - по базам данных
FAQ - по базам данных
Установка СУБД
Oracle
Sybase
MySQL
PostgreSQL
MS SQL Server
Interbase, Firebird
Другие DB
Администрирование
Oracle
MySQL
Sybase
PostgreSQL
MS SQL Server
Interbase, Firebird
IBM DB2
Другие DB
Проектирование БД
Статьи
ETL
Теория БД
ErWin
Designer 2000
PowerDesigner
Хранилища данных
CASE средства
OLAP
Бизнес - анализ (BI)
Производительность
Oracle
MSSQL
Interbase, Firebird
IBM DB2
MySQL
PostgreSQL
SYBASE
Безопасность БД
Oracle
MS SQL Server
Инъекция SQL
Программирование
Transact-SQL
PL/SQL
C++
XML
SQL
PostgreSQL
MDX
Java
VBA Excel
Книги по базам
Oracle
Заказ книг
ОС
Установка и настройка
UBUNTU
TOP - 10
Главная arrow Теория БД arrow Объяснение SQL объединений JOIN INNER OUTER

Объяснение SQL объединений JOIN INNER OUTER

PDF Печать E-mail
 

  Имеем две таблицы

 
A. users               B. departments
id name       d_id     id  name
-- ----       ----     --  ----
1  Владимир    1       1  Сейлз
2  Антон       2       2  Поддержка
3  Александр   6       3  Финансы
4  Борис       2       4  Логистика
5  Юрий        4
 


 
SELECT u.id, u.name, d.name AS d_name
FROM users u
INNER JOIN departments d ON u.d_id = d.id
 

Запрос вернет объединенные данные, которые пересекаются по условию, указанному в INNER JOIN. В результате не присутствует:
- пользователь Александр (отдел 6)
- отдел Финансы (нет пользователей)

 
id name       d_name
-- --------   ---------
1  Владимир    Сейлз
2  Антон       Поддержка
4  Борис       Поддержка
3  Юрий        Логистика
 




рис. Inner join

INNER JOIN это синоним для JOIN. Выбираются только совпадающие данные из объединяемых таблиц. Чтобы получить данные, которые не подходят по условию, необходимо использовать OUTER JOIN. Такое объединение вернет все данные из обоих таблиц.

С JOIN может также указываться LEFT.



рис. Left join

Существует два типа внешнего объединения (OUTER JOIN) - LEFT OUTER JOIN и RIGHT OUTER JOIN. Работают они одинаково, разница заключается в том что LEFT - указывает что "внешней" таблицей будет находящаяся слева. В нашем примере это таблица users.

 
SELECT u.id, u.name, d.name AS d_name
FROM users u
LEFT OUTER JOIN departments d ON u.d_id = d.id
 


Получаем полный список пользователей и сопоставленные департаменты.

 
id      name          d_name
--      --------      ---------
1       Владимир      Сейлз
2       Антон         Поддержка
3       Александр     NULL
4       Борис         Поддержка
5       Юрий          Логистика
 




рис. Left outer join

RIGHT OUTER JOIN вернет полный список департаментов (правая таблица) и сопоставленных пользователей.

 
SELECT u.id, u.name, d.name AS d_name
FROM users u
RIGHT OUTER JOIN departments d ON u.d_id = d.id
 


 
id      name        d_name
--      --------    ---------
1       Владимир    Сейлз
2       Антон       Поддержка
4       Борис       Поддержка
NULL    NULL        Финансы
5       Юрий        Логистика
 


Дополнительно можно отфильтровать данные, проверяя их на NULL.
В нашем примере указав WHERE a.id IS null, мы отбросим записи, в которых пользователи не числятся в отделах.

Информация:
http://www.somecoders.com/2006/02/explanation-of-the-different-sql-joins/
http://www.khankennels.com/blog/index.php/archives/2007/04/20/getting-joins/
http://www.codinghorror.com/blog/archives/000976.html


Последнее обновление ( 24.09.2008 г. )
 
 

Добавить комментарий

Защитный код
Обновить

« Пред.


Последние добавленные статьи
Разделы
Значок файла Скачать CentOS 5.4 (0)
(OS)

Значок файла Скачать Red Hat Enterprise Linux 5 Update 4 (0)
(OS)

Значок файла Скачать QlikView 8.5 (0)
(BI)

Значок файла Скачать QlikView 9 (0)
(BI)

Значок файла Oracle экзамен pdf версия вопросов "p4s 1z0-043 v2.75 (9)
(Oracle)

Значок файла Материалы для подготовки сдачи экзаменов по ORACLE (1z0-042,1z0-043) (9)
(Oracle)

Значок файла Скачать документ "Установка Oracle 10g на Ubuntu Linux" (12)
(Oracle)

Значок файла Скачать PhpMyAdmin (0)
(MySQL)

Значок файла Скачать MDX Studio (0)
(SQL)

Значок файла Скачать Oracle SQL Developer (9)
(Oracle)


Remote DBA
ON-Line консультация по поддержки баз данных.
Популярные файлы
Популярное статтьи
Разделы
 
  Cертификации

  Errors

  FAQ (по темам)

  GIS

  Web

  wiki

  Администрирование

  Безопасность

  Книги
Oracle, ...

  Новости

 
  ОС

  Программирование

  Проектирование БД

  Производительность

  Скачать

  Советы

  Тестирование

  Установка

Rambler's Top100 МЕТА - Украина. Рейтинг сайтов хостинг от freehost.com.ua

Все права защищены.SYSDBA 2010 | Если у Вас есть хороший материал пришлите его нам.