black_angel_by: капюшон (Default)
[personal profile] black_angel_by
ДА, я сцук0 умниц0, наконец то заюзал первый раз LEFT JOIN.
даже ничего не поломал и всё равботает :)
Правда скрипт стал педалнее - с 0.028 секунды до 0.078. Обидно досадно но ладно. Главное докрутил недостающий функционал. Хотя если придумаю ч0 нить и заменю джоин на "обычный" вложеный SELECT или ещё какую каку придумаю, дабы сократить время выполнения, то обязательно заюзаю.

Фух.

Как бы это еще разобраться каким %ем отличается правый джоин от левого и внутреннего %)
в смысле RIGHT JOIN, LEFT JOIN и INNER JOIN. Но судя по мануалу разбиратсья придётся уже дома, предварительно опорожнив припасённый двухлитровик пива %)

Date: 2008-06-10 02:20 pm (UTC)
From: [identity profile] atzkey.livejournal.com
Ну еще и FULL (OUTER) JOIN.

Date: 2008-06-10 02:28 pm (UTC)
From: [identity profile] black-angel-by.livejournal.com
ааа, ты пожираеш мой мосх ! >%)

Date: 2008-06-10 02:47 pm (UTC)
From: [identity profile] tarkhil.livejournal.com
разберешься - расскажешь. человеческим языком. ok?

Date: 2008-06-10 02:56 pm (UTC)
From: [identity profile] metaclass.livejournal.com
(inner) join - в выходной результат попадают только записи, удовлетворяющие условию джоина для обоих таблиц.
left (outer) join - в выходной результат попадают записи как в inner join + все записи из первой(слева от джоина) таблицы для которых условие не выполняется(поля второй таблицы при этом заполняются null)
right (outer) join - инверсия left - все записи, как в inner + все записи, не подпадающие под условие джоина из второй, ака правой от join таблицы, при этом поля первой заполняются null.
full outer join - все записи подпадающие под условие джоин, + все записи из левой и правой не подпадающие под условие(т.е. и левый и правый одновременно)

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

Date: 2008-06-10 09:39 pm (UTC)
From: [identity profile] atzkey.livejournal.com
"Внимание, спойлер! Предыдущий комментарий содержит информацию о сюжете и, возможно, раскрывает концовку".

Ай-ай, лишил своим рефератом человека удовольствия самому во всем разобраться.
Да, и запутал с декартовым произведением. Идеологически ему соответсвует явное определение table1 CROSS JOIN table2 или неявное FROM table1, table2; можно было просто ограничиться замечанием обо всех возможных комбинациях.

Date: 2008-06-11 06:44 am (UTC)
From: [identity profile] metaclass.livejournal.com
А, точно. Декартово без дополнительных условий как раз и будет CROSS JOIN, правда, я им практически не пользуюсь.

Date: 2008-06-11 11:10 am (UTC)
From: [identity profile] black-angel-by.livejournal.com
о, пасяпки, частично моему мозгу полегчало, хотя пришлось выкурить 3 сигареты, прежде чем уйснил что откуда растёт

но появиилсь доп вопросы.
full join какого то хера не сработал - ошибка
(мот дело в том, что вторая таблица это результат селекта, но Inner и LEFT отрабатывают без проблем)

cross join отработал как inner. что бы это значило ? MySQL 5.0.x

Date: 2008-06-11 08:47 pm (UTC)
From: [identity profile] atzkey.livejournal.com
Если у тебя кросс жойн работает как иннер, то смотри на условие соединения в иннере -- оно, вероятно, всегда истинно в твоем случае.

Date: 2008-06-11 08:48 pm (UTC)
From: [identity profile] atzkey.livejournal.com
Ну и такие вопросы все-таки в рамках комментариев к посту не объяснишь. Четай умне книшке!

Date: 2008-06-10 09:41 pm (UTC)
From: [identity profile] atzkey.livejournal.com
А еще у меня после фразы "right (outer) join - инверсия left..." сразу же промелькнула мысль, что "таки да, инверсия; а inner join -- неподвижная точка". :-)

Profile

black_angel_by: капюшон (Default)
black_angel_by

October 2016

S M T W T F S
      1
234567 8
9101112131415
16171819202122
23242526272829
3031     

Style Credit

Expand Cut Tags

No cut tags
Page generated Jul. 13th, 2025 12:48 am
Powered by Dreamwidth Studios