Модераторы: skyboy

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Объединение двух запросов, sql 
:(
    Опции темы
Akina
Дата 12.11.2013, 15:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 45
Всего: 454



Isaev, внимательно... 
Нет, не так. 
ВНИМАТЕЛЬНО перечитайте ещё раз всю тему. Чем ближе к концу, тем внимательнее.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Zloxa
Дата 12.11.2013, 16:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


Профиль
Группа: Завсегдатай
Сообщений: 3473
Регистрация: 12.9.2008

Репутация: 53
Всего: 161



Короче, тему пора закрывать:
Код

SELECT tl_page.id, tl_page.pid, tl_page.title, headline, text
FROM `tl_page`
left join `tl_article` on tl_page.id=tl_article.pid 
left join `tl_content` on tl_article.id=tl_content.pid
where tl_page.pid=mid

либо, если в артикле есть "битые" ссылки на контент, чтобы получить аналог с топикстартом:

Код

SELECT tl_page.id, tl_page.pid, tl_page.title, headline, text
FROM `tl_page`
left join ( select  headline, text, tl_article.pid 
  from `tl_article` 
  inner join `tl_content` on tl_article.id=tl_content.pid
) as s on s.pid = tl_page.id
where tl_page.pid=mid


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

Это сообщение отредактировал(а) Zloxa - 12.11.2013, 16:19


--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
Akina
Дата 12.11.2013, 16:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 45
Всего: 454



Тогда уж лучше добавить доп. условие в первый вариант и отсечь зависший контент 
Код

where not(tl_article.id  is null and tl_content.pid is not null)



--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Zloxa
Дата 12.11.2013, 16:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


Профиль
Группа: Завсегдатай
Сообщений: 3473
Регистрация: 12.9.2008

Репутация: 53
Всего: 161



Цитата(Zloxa @  12.11.2013,  17:12 Найти цитируемый пост)
 если в артикле есть "битые" ссылки на контен

пожалуй, можно еще отфильтровать их добавив в where первого запроса. Наверное как-то так:
Код

and (tl_content.pid is not null or tl_article.pid is null)



--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
Akina
Дата 12.11.2013, 16:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 45
Всего: 454



Zloxa,  smile 


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Zloxa
Дата 12.11.2013, 17:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


Профиль
Группа: Завсегдатай
Сообщений: 3473
Регистрация: 12.9.2008

Репутация: 53
Всего: 161



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

Я вот даже табличку истинности набросал, но чот не могу сообразить кто же накосячив. Моя предвзятость меня склоняет к мнению, что я скорее более прав, но что-то не позволяет склониться к этому мнению уверенно.
Код

article  content  not(article is null and content is not null)  (article is null or content is not null )
null      null                     true                                 true
not null  null                     true                                 false
null      not null                 false                                true
not null  not null                 true                                 true

Мне кажется ты отфильтровываешь тот кейс, который невер бин хаппенд.

Цитата(Akina @  12.11.2013,  17:23 Найти цитируемый пост)
tl_article.id

и это. Здесь лучше пид. Если id nullable, а произошел джойн по пиду...

Это сообщение отредактировал(а) Zloxa - 12.11.2013, 17:33


--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
Akina
Дата 12.11.2013, 18:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 45
Всего: 454



Цитата(Zloxa @  12.11.2013,  18:27 Найти цитируемый пост)
Здесь лучше пид

Это опечатка :(

Цитата(Zloxa @  12.11.2013,  18:27 Найти цитируемый пост)
Мне кажется ты отфильтровываешь тот кейс, который невер бин хаппенд.

Я фильтрую подвисший текст. Т.е. контент есть, а статьи к нему нет. КАжется...


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Zloxa
Дата 12.11.2013, 21:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


Профиль
Группа: Завсегдатай
Сообщений: 3473
Регистрация: 12.9.2008

Репутация: 53
Всего: 161



Цитата(Akina @  12.11.2013,  19:45 Найти цитируемый пост)
 Т.е. контент есть, а статьи к нему нет.

C учетом того, что контент тут подтягивается через артикль, это не существующий кейс ))

Это сообщение отредактировал(а) Zloxa - 12.11.2013, 21:47


--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
Isaev
Дата 13.11.2013, 10:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 125
Регистрация: 8.11.2007
Где: Germany

Репутация: нет
Всего: нет



Zloxa, взял второй вариант на всякий случай, хотя первый справляется так же, видимо кривых данных нет (ну пока по крайней мере), но т.к. за них отвечаю не я, лучше подстраховаться

Спасибо, ребята! Большое и человеческое
PM MAIL ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Составление SQL-запросов | Следующая тема »


 




[ Время генерации скрипта: 0.0844 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.