<MyRusakov.ru />

Фреймворк Yii 2.0 с нуля. Пример создания сайта

Фреймворк Yii 2.0 с нуля. Пример создания сайта

Видеокурс "Фреймворк Yii 2.0 с нуля. Пример создания сайта" обучит Вас созданию профессиональных сайтов с использованием фреймворка Yii. В курсе есть 2 раздела: теоретический и практический. В теоретическом разделе будут разобраны возможности фреймворка Yii с примерами их использования, а в практической части будет создан сайт Blog.MyRusakov.ru с помощью полученных знаний из теоретического раздела.

Так же почти ко всем урокам идут упражнения для закрепления материала из урока на практике.

После прохождения курса Вы без труда сможете создавать любые сайты с использованием фреймворка Yii, причём делать это будете быстро и качественно.

Подробнее
Подписка

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Каким движком Вы предпочитаете пользоваться?

JOIN в SQL

JOIN в SQL

Команда JOIN в SQL-запросе служит для объединения выборки из нескольких таблиц в один результирующий набор, причём в результирующей выборке находятся все поля всех таблиц, участвующих в запросе. Давайте с Вами разберём подробнее использование JOIN в SQL.

Существует несколько вариантов запроса JOIN, начнём мы с самого популярного, а именно INNER JOIN:

SELECT * FROM `users` INNER JOIN `subscribers` ON `users`.`email` = `subscribers`.`email`

Подобным запросом я извлёк все записи, где в выборку попадут все пользователи сайта, которые также являются подписчиками.

Особенностью INNER JOIN является то, что в результат входят все поля со всеми значениями. Количество записей ровно столько, сколько удовлетворили условиям у обеих таблиц.

Теперь давайте перейдём к следующей разновидности JOIN, а точнее к LEFT OUTER JOIN:

SELECT * FROM `users` LEFT OUTER JOIN `subscribers` ON `users`.`email` = `subscribers`.`email`

Особенностью данного запроса является то, что результат выборки содержит записи, удовлетворяющие левой таблице. Если они ещё и удовлетворяют условиям правой таблицы, то это идентично INNER JOIN, иначе вместо значений в правой таблице будет NULL.

Теперь перейдём к RIGHT OUTER JOIN:

SELECT * FROM `users` RIGHT OUTER JOIN `subscribers` ON `users`.`email` = `subscribers`.`email`

Зеркальная противоположность LEFT OUTER JOIN, теперь NULL присутствуют в первой таблице, то есть слева.

И, наконец, последний тип JOIN - это CROSS JOIN:

SELECT * FROM `users` CROSS JOIN `subscribers`

Данный запрос выдаёт всевозможные сочетания двух таблиц. В данном запросе результирующее число записей - это перемножение количества записей в обеих таблицах.

Я ещё не рассказал о FULL OUTER JOIN, который не поддерживается MySQL. Но, на мой взгляд, он и не нужен. Его особенностью является то, что он выводит строку, в которой есть хотя бы одно совпадение с любой из таблиц. Соответственно, в другой таблице (в которой нет совпадения с условием) идут NULL. Фактически, это объединение LEFT OUTER JOIN и RIGHT OUTER JOIN:

SELECT * FROM `users` LEFT OUTER JOIN `subscribers` ON `users`.`email` = `subscribers`.`email` UNION SELECT * FROM `users` RIGHT OUTER JOIN `subscribers` ON `users`.`email` = `subscribers`.`email`

Вот я и рассказал обо всех разновидностях JOIN в SQL. Стоит отметить, что тема очень сложная, и её редко понимают с первого раза. Поэтому я Вам рекомендую обязательно посмотреть, как работают данные запросы на примере Ваших каких-нибудь таблиц (если их нет, то создайте). Проверьте все разновидности JOIN и посмотрите, чем они отличаются.

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

  1. Кнопка:

    Она выглядит вот так: Как создать свой сайт

  2. Текстовая ссылка:

    Она выглядит вот так: Как создать свой сайт

  3. BB-код ссылки для форумов (например, можете поставить её в подписи):

Комментарии (9):

sab-ilnaz sab-ilnaz 21.01.2013 11:00:55

Я не силен в SQL, только начал изучать. Статья отличная. Но если бы были маленькие "примерчики" для каждого случая для сравнении, я бы понял абсолютно все! Спасибо за статьи!

Ответить

wanderer wanderer 21.01.2013 14:43:23

А как сделать сортировку вывода данных? Вот в мы же обьединяем два запроса юнионом, а как сделать ORDER BY и по какому же запросу и как его указать?

Ответить

Admin Admin 21.01.2013 20:52:23

В самом конце запроса его можно указать, после всех JOIN. Там же указывается и WHERE, и LIMIT.

Ответить

sync.o sync.o 21.01.2013 14:48:42

Михаил, а не рискованно открывать всему свету префикс таблиц в вашей БД?)

Ответить

Admin Admin 21.01.2013 20:49:55

Это старый, от Joomla ещё остался, но вообще, да, он попал сюда случайно, когда проверял правильность запросов, чтобы не было ошибок.

Ответить

wanderer wanderer 21.01.2013 21:31:39

Михаил очень прошу вас чтобы вы написали цикл статей про репликацию и подробную ее настройку. то что есть php.ru не доходчиво для меня.

Ответить

Admin Admin 22.01.2013 10:34:39

Возможно, напишу в следующем месяце.

Ответить

wanderer wanderer 22.01.2013 12:58:42

Я очень надеюсь! Она будет действительно нужна для многих юзеров!

Ответить

prog prog 29.09.2014 07:44:43

Здраствуйте!После этого запроса пропали все комментарий на сайте, как их вернуть?

Ответить

Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.