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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Объединение, MySQL 
:(
    Опции темы
Master
Дата 19.4.2004, 16:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1530
Регистрация: 13.5.2003
Где: Mother Russia

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



Предположим есть как обычно 3 таблицы:
1) Перечень статей
2) Перечень авторов
3) Связка идетентификаторов статей и авторов

но у некоторых статей может быть более 1 автора и в таблице связок соответственно 2 раза повтаряется идетентификатор таких статей по 1 к каждому автору.

как 1 запросом взять все статьи и присобачить к ним n'ое кол-во авторов.


--------------------
Вавилон, Вавилон
Что ты построил, что разрушил?
Вавилон, Вавилон
Плавятся души дьявольским огнем.
PM WWW ICQ   Вверх
Secandr
Дата 19.4.2004, 18:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Связист
****


Профиль
Группа: Экс. модератор
Сообщений: 4043
Регистрация: 3.8.2003
Где: Russia, Volgograd

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



взять join, не групировать и отсортировать сначала по id статьи, а потом по id автора
А на пхп уже склеит.


--------------------
Мышки плакали, кололись, но продолжали жрать кактусы (с) cisco
PM ICQ AOL   Вверх
Master
Дата 20.4.2004, 10:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1530
Регистрация: 13.5.2003
Где: Mother Russia

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



Secandr
не соображу...
например есть так:

table articles
id_article | header
1 | Статья 1
2 | Статья 1
3 | Статья 1

table authors
id_author | name
1 | Автор 1
2 | Автор 1
3 | Автор 1
4 | Автор 1

table articles_authors
id_article | id_author
1 | 1
1 | 3
2 | 2
2 | 1
3 | 4

к примеру вот так:
надо (1 запросом т.к. статей очень много) взять
id_article | header | id_author_1 | name_1 [| id_author_2 | name_2]

я сейчас склоняюсь к тому что бы сделать таблицу articles_authors таким способом:
id_article | id_author_1 | id_author_2 | и т.д если авторов будет больше

ещё надо учесть, что будет поиск по автору....
а как ты предлогаеш? я что-то не до понял.


--------------------
Вавилон, Вавилон
Что ты построил, что разрушил?
Вавилон, Вавилон
Плавятся души дьявольским огнем.
PM WWW ICQ   Вверх
ida
Дата 31.5.2004, 20:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


замужем
****


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

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



Мастер, если решил проблему, напиши плиз, как. У меня точно такая же фигня.
PM WWW   Вверх
Cashey
Дата 31.5.2004, 21:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бессмертный
****


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

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



Сразу прошу прощения, я мускул не знаю, поэтому дам теоритический ответ.
Что если (раз уж мускул не поддерживает вложенные запросы) зделать два SELECT'а по id, создав две независимые выборки, а потом зделать UPDATE к одной из таблиц и таким образом их объединить?


--------------------
библия учит любить ближнего, а камасутра обучает как именно
PM Jabber   Вверх
Akina
Дата 1.6.2004, 10:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Не, ребяты... никакой мускул не построит вам выборку с динамическим изменением числа столбцов. Да и к чему оно - всех авторов непременно в одну строку свалить? сперва на сервере выборка (за синтаксис не ручаюсь)
Код
select header,name from ((articles_authors inner join authors on articles_authors.id_author = authors.id_author) inner join articles on articles_authors.id_article = articles.id_article) order by header
а потом на клиенте программная линковка в одну строку авторов статей...

Это сообщение отредактировал(а) Akina - 1.6.2004, 10:46


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

PM MAIL WWW ICQ Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MySQL | Следующая тема »


 




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


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

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