Запрос из двух таблиц, с объединением двух и более результатов из второй

Kvait

Guest
Запрос из двух таблиц, с объединением двух и более результатов из второй

Есть две таблицы:

ilib_books
-ID---AUTHORID-----TITLE
-1------------2------------ ИНДИЯ. Эпос, легенды, мифы
-2------------3------------ Запретная археология
-3------------1,3---------- Хагакурэ

ilib_authors
-ID--------NAME
-1--------- Вася Пупкин
-2--------- Костя Пупкин
-3--------- Вова Пупкин

Нужно при одном запросе (а может двух? Что посоветуете?) извлечь книгу из ilib_books с id=3.. плююсь извлечь авторов этой книги на основе AUTHORID (то есть 1,3. Или может писать не через запятую? Или еще как?) из ilib_authors
Как это сделать?

Желательно что результат был:

Array
(
[id] => 3
[author] => Вася Пупкин, Вова Пупкин
[title] => Хагакурэ
)

Заранее благодарен.
 

zerkms

TDD infected
Команда форума
Kvait
для перечислений авторов заводишь ещё одну таблицу

book_id | author_id
 

Kvait

Guest
Автор оригинала: zerkms
Kvait
для перечислений авторов заводишь ещё одну таблицу

book_id | author_id
=\ Ну допустим завел. У как она мне поможет? Можно поподробнее?
 

zerkms

TDD infected
Команда форума
book_auth:
book_id | author_id
1 2
2 3
3 1
3 3


SELECT * FROM `ilib_books`INNER JOIN `book_auth` ON `book_auth`.`book_id` = `ilib_books`.`id` INNER JOIN `ilib_authors` ON `ilib_authors`.`id` = `book_auth`.`author_ir` WHERE `ilib_books`.`id` = 3

полученные данные немного придётся подправить средствами пхп под формат который ты написал

ps: писал запрос навскидку - могут быть баги
 

Kvait

Guest
сории спутал.

-~{}~ 03.11.05 01:29:

zerkms
Спасибо что разъяснил.

Ну результат я получил.. В первом массиве [name] первый автор, во втором массиве [name] второй автор. Вот только в каком то странном виде…
Оно так и должно быть? А если их будет пять? То, что получится пять массивов?

Array
(
[0] => Array
(
[id] => 1
[cover] => http://www.ozon.ru/multimedia/books_covers/910527000.jpg
[title] => Эварист Галуа: Революционер и математик
[ganre] => 33
[isbn] => 5-93972-027-7
[description] =>
[book_id] => 1
[author_id] => 5
[a_id] => 5
[name] => П.Дюпюи
[fullname] =>
[photo] =>
[enabled] => 1
)

[1] => Array
(
[id] => 1
[cover] => http://www.ozon.ru/multimedia/books_covers/910527000.jpg
[title] => Эварист Галуа: Революционер и математик
[ganre] => 33
[isbn] => 5-93972-027-7
[description] =>
[book_id] => 1
[author_id] => 6
[a_id] => 6
[name] => А.Дальма
[fullname] =>
[photo] =>
[enabled] => 1
)

)
 

zerkms

TDD infected
Команда форума
да, так и получится - далее массив пережёвывай средствами ПХП
 
Сверху