Многие ко многим присоединяются к Query в CodeIgniter - PullRequest
3 голосов
/ 25 января 2010

Все предыдущие попытки присоединения оставили меня с данными диска или элемента, в которых были указаны id, ключи заголовка результата (возможно, происходит конфликт).

Итак, у меня есть:

item table
fields: id, title

disc table
fields: id, title

item_disc table
fields: item_id, disc_id

Как мне создать двойное соединение, чтобы я мог получить доступ к связанным дискам с предметом. В настоящее время я выполняю два отдельных запроса, один для отдельной записи элемента, затем один для массива дисков.

Помимо того, что проще сделать один запрос с объединениями, если я когда-либо захочу получить более 1 записи, мне в настоящее время потребуется выполнить 2 запроса на элемент, поскольку я не могу объединить свои данные.

Пожалуйста, помогите! Я чувствую, что это мое последнее препятствие для многих (хотя и не смей говорить слишком рано).

Ответы [ 2 ]

4 голосов
/ 25 января 2010

, поскольку оба элемента и диска имеют столбцы с именами id и title, они будут перезаписывать друг друга вам нужно будет использовать as, чтобы различать их ...

для всех предметов и связанных с ними дисков:

select m.*, i.title as item_title, d.title as disc_title
from item i, disc d, item_disc m where i.id = m.item_id and
d.id = m.disc_id order by i.title, d.title

за один предмет и его диски:

select m.*, i.title as item_title, d.title as disc_title
from item i, disc d, item_disc m where i.id = m.item_id = ? and
d.id = m.disc_id order by d.title

заменить? с нужным предметом

0 голосов
/ 09 января 2011

Вот реализация CodeIgniter для отношений базы данных «многие ко многим», которую я собираю в виде серии скринкастов. Это абстрактно и не предназначено для использования в производственной среде как есть. Таким образом, это должно помочь прояснить концепцию.

http://www.mattborja.com/web-development/codeigniter/databases/many-to-many-relationships-in-codeigniter-abstract/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...