Отправляет email-рассылки с помощью сервиса Sendsay

RFpro.ru: Базы данных MySQL

  Все выпуски  

RusFAQ.ru: Базы данных SQL


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Базы данных SQL

Выпуск № 144
от 07.09.2006, 13:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 345, Экспертов: 48
В номере:Вопросов: 1, Ответов: 3


Вопрос № 53985: Здравствуйте, ув. эксперты! Помогите понять смысл и работу JOIN в запросе SELECT. Я прочел о нем в доке по MySQL, смотрел на результат запроса, но понятьне могу. В чем его смысл, когда применять? Буду признателен за Вашу помощь!...

Вопрос № 53.985
Здравствуйте, ув. эксперты!
Помогите понять смысл и работу JOIN в запросе SELECT.
Я прочел о нем в доке по MySQL, смотрел на результат запроса, но понятьне могу. В чем его смысл, когда применять?
Буду признателен за Вашу помощь!
Отправлен: 01.09.2006, 13:56
Вопрос задал: Mik (статус: Посетитель)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Карпов Алексей
Здравствуйте, Mik!
Join сам по себе является оператором связывания двух таблиц по условию.
Существует 5 типов связывания
INNER JOIN, LEFT OUTER JOIN, RIGHT OUTER JOIN, FULL OUTER JOIN и CROSS JOIN.
Слова INNER и OUTER можно опускать. таким образом INNER JOIN и JOIN это один и тот же оператор,только по разному записанный. А LEFT JOIN это сокращенная форма LEFT OUTER JOIN

Вариант №1 INNER JOIN.
INNER JOIN работает следующим образом.
Осуществляется выбор всех комбинаций записей из первой таблицы с записями из второй таблицы. После чего проверяется условие написанное в операторе ON, если условие выполняется, то тогда в результирующий набор добавляется запись состоящая из соединенных записей из первой и второй таблицы. Если же условие не выполняется, то тогда в результирующих набор данных ничего не добавляется.
Используется когда необходимо получить данные которые есть в обеих таблицах.
Вариант №2 LEFT OUTER JOIN.
Осуществляется выбор всех комбинаций записей из первой таблицы с записями из второй таблицы. После чего проверяется условие написанное в операторе ON, если условие выполняется, то тогда в результирующий набор добавляется запись состоящая из соединенных записей из первой и второй таблицы. Если же условие не выполняется, то тогда в результирующих набор данных добавляется запись состоящая из записи таблицы стоящеей левее оператор JOIN + вместо данных из второй таблицы строка содержащая в всех полях NULL.
Ответ отправил: Карпов Алексей (статус: 2-ой класс)
Ответ отправлен: 01.09.2006, 14:06

Отвечает: Santana
Здравствуйте, Mik!
Обединяет две и более таблицы по значению полей. самый простой вариант джойна
where tabl1.field1 = tabl2.field2
Выбирает из обоих таблиц записи при которых соблюдается указанное условие
Ответ отправил: Santana (статус: 6-ой класс)
Ответ отправлен: 01.09.2006, 14:10

Отвечает: Игорь Елизаров
Здравствуйте, Mik!
допустим, есть две таблицы
список городов

Москва
Питер
Смоленск

и список родственников с городами
Москва , тетя
Свердловск , дядя
Питер , сестра

тогда при связывании этих таблиц по inner join (связываем по городу
получим только записи, у которых города совпадают,
то есть
москва , тетя
Питер , сестра

При связывании по Left join получаем все записи первой таблицы, ну и по возможности, родственников..

Москва , тетя
Питер , сестра
Смоленск , NULL (то есть во второй таблице нету соответствующей записи)

Ответ отправил: Игорь Елизаров (статус: 5-ый класс)
Ответ отправлен: 01.09.2006, 16:22


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2006, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
Авторские права | Реклама на портале
Версия системы: 4.36 от 06.09.2006
Яндекс Rambler's Top100

В избранное