Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Просьба о написании статьи/мануала о LEFT JOIN
 
 автор: provodnik   (10.05.2007 в 21:06)   письмо автору
 
 

Доброго времени суток.
Хочу попросить Администрацию форума, и людей, в совершенстве владеющих и использующих "вложенные запросы", "левые соединения", группировку при выборке ( в частности г-на Trianon, чьими советами регулярно пользуюсь ) написать обучающий материал...
На этом форуме довольно много советов и решений, но все они направлены на решение узких вопросов и проблем. А хотелось бы узнать общую информацию, так сказать "руководство к действию"...

Спасибо...

   
 
 автор: Artem S.   (10.05.2007 в 21:27)   письмо автору
 
   для: provodnik   (10.05.2007 в 21:06)
 

А что вам не понятно в left join ?
Выбираются все строки из "правой" таблицы к ним добавляются столбцы из "левой" таблицы, если строка из правой таблицы не соответствует условию объединения, все стоблцы из "левой" таблицы будут NULL. Легче показать
SELECT p.*, s.straf FROM person p LEFT JOIN premia s ON p.id = s.pers_id;

Выбираются все личности, и у тех у кого есть записи в таблицы премии будут имет соответ сующую запись в столбец straf. Если использовать INNER JOIN, то выбирутся только те кто получал штаф.

   
 
 автор: provodnik   (10.05.2007 в 21:47)   письмо автору
 
   для: Artem S.   (10.05.2007 в 21:27)
 

Ну начнем с того, в каких случаях удобнее использовать left join;
Хочется увидеть несколько небольших примеров запросов со структурами таблиц, из которых происходит выборка;
Хочется увидеть пример нескольких сложных вложенных запросов в один, опять же с разъяснением синтаксиса и прикреплением структуры таблиц.
Наподобие такого, приведенного в этой теме: http://www.softtime.ru/forum/read.php?id_forum=3&id_theme=37332&page=1:

SELECT threads.*, alls.cnt, alls.ldate, last.author AS lauthor 
FROM threads 
LEFT JOIN 
  (SELECT COUNT(id) AS cnt, MAX(add_date) AS ldate,  thread_id 
   FROM messages 
    GROUP BY thread_id) 
  AS alls ON threads.id = alls.thread_id 
  LEFT JOIN messages AS last ON alls.ldate = messages.add_date 
ORDER BY ldate DESC, cnt DESC 

Другими словами статью/мануал/руководство... Естественно на отечественном языке... Таким же "почерком", каким написаны эти материалы: http://www.softtime.ru/bookphp/

Прошу меня извинить, но Вы опять же привели узкий пример, на аналог которого я бы мог и так посмотреть в этой ветке форума...

   
 
 автор: Artem S.   (12.05.2007 в 11:51)   письмо автору
 
   для: provodnik   (10.05.2007 в 21:47)
 

Вложенные запросы - это уже из другой оперы. А нужно left join когда нужна полная выборка из какой либо таблицы. В примере я это описал

   
 
 автор: Loki   (11.05.2007 в 10:43)   письмо автору
 
   для: Artem S.   (10.05.2007 в 21:27)
 

с точностью до наоборот:)

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования