Который присоединяется для 1: много отношений? - PullRequest
0 голосов
/ 01 августа 2011

Вот моя схема базы данных и таблицы, которые я пытаюсь связать, я пытался использовать LEFT соединение, но теперь он создает новый результат для каждой подходящей строки.

http://i.imgur.com/Ovsau.png

Я сейчас создаю свой запрос и сейчас пытаюсь объединить эти таблицы вместе (Процедура-> Процедура_event -> Ресурсы -> Med_item)

В сценарии, подобном этому:

например. Процедура X имеет 3 строки.

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

Однако он возвращает 3 строки результатов примерно так:

  • Процедура X - строка_процедуры_ событий 1
  • Процедура X - процедура_в событии, строка 2
  • Процедура X - процедура_событие, строка 3

Таким образом, результат запроса должен быть Процедура X - строка процедуры строки 1,2,3

Это мой код в PHP Codeigniter с использованием Active Record:

$this->db->join('procedure_event', 'procedure.procedure_id = procedure_event.procedure_id' , 'left');

Спасибо

1 Ответ

1 голос
/ 01 августа 2011

Так работает LEFT JOIN.

Таким образом, результатом запроса должна быть процедура X - строка процедуры для событий 1,2,3

Я думаю, вам нужно это: Как получить количество связанных строк в левом соединении в MySQL?

MySQL не может возвращать двумерные массивы или объединять строки. Если вам нужны все «строки 1, 3, 3 процедуры», просто выполните итерацию по набору результатов, как вы обычно делаете, и добавьте маленький значок +, который получает события процедуры с AJAX.

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