Новости
Документация
Download
Webboard
Поиск
FAQ/ЧаВо
Обратная связь




MySQL.RU - Webboard



Вернуться
Помогите обуздать left join в mysql (Вадим) 30/07/2006 - 15:51:48
      Re: Помогите обуздать left join в mysql (Вадим) 30/07/2006 - 17:54:18



From: Вадим - 30/07/2006 - 15:51:48
Subject:Помогите обуздать left join в mysql
-----------------
Есть две таблицы форума phpBB - phpmw_forums (список форумов) и
phpmw_posts(инморация о каждом посте в форуме - к какой теме принадлежит, в
какому форуму и т.д.).

Составил три дополнительных таблицы (то, что не относится к делу, из них
вырезал):

create table phpmw_bt_export(
# Содержимое каких форумов в каких ньюзгруппы или форумы экспортировать
bte_forumid mediumint(8) not null,
bte_groupid mediumint(8) not null,
);

create table phpmw_bt_groups(
# Список ньюзгрупп и форумов для экспорта
btg_id mediumint(8) not null auto_increment primary key,
# напр., "its.video"
btg_group varchar(100) not null,
# Напр., "ints.news.pike"
btg_host varchar(50) not null,
);

create table phpmw_bt_topics(
# Для определения скриптом, в какие группы он уже запостил темы из нашего
форума
#btt_id mediumint(8) not null auto_increment primary key,
btt_topicid mediumint(8) not null,
btt_groupid mediumint(8) not null,
# запощен ли уже пост ID=btt_gorupid в группу ID=btt_topicid ?
btt_posted bool default '0'
);

btt_topicid ссылается на phpmw_posts.topic_id,
brr_groupid на phpmw_bt_groups.btg_id,bte_groupid на phpmw_bt_groups.btg_id,
bte_forumid на phpmw_forums.forum_id.

Нужно сделать SELECT тех постов, которые ещё не постились. При этом,
соответствующих записей в phpmw_bt_topics может и не быть !

Запрос SELECT btg_group,p.topic_id from
phpmw_forums as f,
phpmw_bt_groups,phpmw_posts as p,phpmw_bt_export
left join phpmw_bt_topics on btt_groupid=bte_groupid and btt.posted=0
where (btt_topicid=p.topic_id or btt_topicid is null) and
bte_forumid=f.forum_id and bte_groupid=btg_id and
and p.forum_id=f.forum_id and p.topic_id=125 order by btg_id

успешно работает в том случае, если в phpmw_bt_topics имеются соотв. записи,
но спотыкается, если соответствующие данному топику (p.topic_id, тут он
равен 125) записи не имеются в phpmw_topics.

Как быть ?


[Это сообщение - спам!]

Последние сообщения из форума

Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
29298



РЕКЛАМА НА САЙТЕ
  Создание сайтов | |