Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > MySQL > Помогите с запросом (3 таблицы)


Автор: aisthetes 28.3.2010, 16:48
Помогите с запросом (крыша уже едит), нужно чтоб в статьях при необходимости отображались более одного автора (через запетую), пример: Статья1 | автор1, автор2. 

БД:
article
-id
-title

authors
-id
-name

co_authors
-ar_id
-au_id

(article.id = co_authors.ar_id, authors.id = co_authors.auid)

Автор: skyboy 28.3.2010, 18:46
надо использовать группировку по ar_id и http://dev.mysql.com/doc/refman/5.1/en/group-by-functions.html#function_group-concat по authors.name

Автор: aisthetes 28.3.2010, 18:58
Код

SELECT DISTINCT `co_authors`.`arid` as `arid1`, 
(
select GROUP_CONCAT(`co_authors`.`auid` SEPARATOR '::')
as `auid` from `co_authors`
where `co_authors`.`arid` = `arid1`
)
as `auid`
FROM `co_authors`


только еще две таблицы сюда втулить, чтоб вместо id было имя и заголовки статей smile

Автор: Akina 28.3.2010, 20:25
Код

select article.title
     , group_concat(authors.name separator ', ')
from co_authors
join article
  on article.id = co_authors.ar_id
join authors
  on authors.id = co_authors.au_id
group by article.title
?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)