|
|
|
| Доброго времени суток.
Хочу попросить Администрацию форума, и людей, в совершенстве владеющих и использующих "вложенные запросы", "левые соединения", группировку при выборке ( в частности г-на Trianon, чьими советами регулярно пользуюсь ) написать обучающий материал...
На этом форуме довольно много советов и решений, но все они направлены на решение узких вопросов и проблем. А хотелось бы узнать общую информацию, так сказать "руководство к действию"...
Спасибо... | |
|
|
|
|
|
|
|
для: 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, то выбирутся только те кто получал штаф. | |
|
|
|
|
|
|
|
для: 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/
Прошу меня извинить, но Вы опять же привели узкий пример, на аналог которого я бы мог и так посмотреть в этой ветке форума... | |
|
|
|
|
|
|
|
для: provodnik
(10.05.2007 в 21:47)
| | Вложенные запросы - это уже из другой оперы. А нужно left join когда нужна полная выборка из какой либо таблицы. В примере я это описал | |
|
|
|
|
|
|
|
для: Artem S.
(10.05.2007 в 21:27)
| | с точностью до наоборот:) | |
|
|
|