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




MySQL.RU - Webboard



Вернуться
Объединение нескольких таблиц (LM) 10/10/2004 - 17:07:51
      Re: Объединение нескольких таблиц (Dinky) 12/10/2004 - 21:01:58
      Re: Объединение нескольких таблиц (LM) 13/10/2004 - 15:01:49
      Re: Объединение нескольких таблиц (Dinky) 14/10/2004 - 19:40:25
      Re: Объединение нескольких таблиц (LM) 15/10/2004 - 13:51:03
      Re: Объединение нескольких таблиц (Dinky) 15/10/2004 - 19:59:20

> Original message text:
> From: LM - 10/10/2004 - 17:07:51
> Subject:Объединение нескольких таблиц
> -----------------
> Здравствуйте. Начну попорядку. Задача в следующем:
> есть таблицы:
>
> users поля: id,name,name2,name3,tel
> states поля: id,name
> articles поля: id,name,user_id,state_id,text
>
> Все эти три таблицы у меня служат для организации хранении статей. Тоесть каждая статья имеет одного автора, и одно состояние: новое, старая, недописанная, и тд.
>
> Вроде всё я правильно с проектировал. Но когда реально это всё пременил то получаеться что если я удаляю пользователя, или состояние, то сразуже теряеться ссылки и на саму статью... Ведь запрос вида:
>
> select articles.name as aname, users.name as uname, states.name as sname from users,states,articles where articles.user_id=users.id && articles.state_id=states.id;
>
> возвращает только то к чему он нашёл соответстие. И получаеться что в используя такой запрос я теряю статьи с удалённым автором, или с удалённым состоянием. Пробовал и Left Join, там ситуация интереснее получалось что при удаление или пользователя или состояния всё было хорошо, но если удалить их вместе выводилась куча других несоответствий.
>
> Если кто может подсказать какой нибудь запрос который мог бы вывести список статей, авторов, состояний так что если нет соответсвия писалось например нету (NULL) был бы очень признателен.
>


From: Dinky - 14/10/2004 - 19:40:25
Subject:Объединение нескольких таблиц
-----------------
1) если состояния и пользователи не связаны, то таблица состояний - статическая, в том смысле, что ее вобщем-то нехорошо менять, можно добавлять... короче, НЕ должно возникнуть ситуации, когда в ней отсутствуют записи, ссылки на которые есть в articles, иначе нарушается целостность связей/данных
2) если надо удалить пользователя, то СНАЧАЛА надо грохнуть все его статьи в articles, ПОТОМ убить его запись в user, a states - ваще НЕ ТРОГАТЬ!
3) единственный LEFT JOIN что я могу себе вообразить может понадобится чтоб вытащить юзеров БЕЗ статей:
select users.name from users let outer join articles on user.id=user_id where user_id is null

--
Dmitry


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

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

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



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