CodeIgniter: выбор строк с идентификатором, который соответствует различным значениям в другой таблицеPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 CodeIgniter: выбор строк с идентификатором, который соответствует различным значениям в другой таблице

Сообщение Anonymous »

У меня есть три отдельных таблица в моем БД. Один со списком компаний , а другой со списком компаний_Категорий . И последний с категориями . Все строки в таблице компаний и категории имеют уникальный идентификатор. В таблице Company_Categories нет уникальных идентификаторов. < /p>

Это образец того, что похожа на таблицу моих компаний < /code>: < /p>

Код: Выделить всё

company_id | company_name     |  logo     |  ....
-----------+------------------+-----------+--------
5     |  Co 5            |  123.jpg  |  ....
6     |  Company 6       |  123.jpg  |  ....
7     |  7's a company   |  234.jpg  |  ....
8     |  EightCo         |  345.jpg  |  ....
< /code>

Это образец того, как выглядит моя категории < /code> таблица: < /p>

category_id | category_name
------------+-----------
1     |  Blue
2     |  Red
3     |  Green
4     |  Yellow
< /code>

и что My Companies_categories < /code> выглядит: < /p>

company_id | category_id
-----------+-----------
5     |  2
5     |  3
6     |  1
6     |  2
7     |  1
< /code>

Примечание: company_id, и Category_id имеют иностранные ключи в своих относительных таблицах < /p>

То, что я пытаюсь сделать, - это перечислять все компании с определенной категорией. Например, если категория 2 выбрана компании 5 и 6, должны быть возвращены. Если выбрана категория 4, ничего не должно отображаться. Компания 8 никогда не должна отображаться (потому что она не связана с категориями) < /p>

Я попытался решить эту проблему, используя функцию codeigniter office () в активной записи: < /p>

$this->db->from('company_categories')
->distinct()
->where('category_id', $category_id)
->join('companies', 'companies.company_id = company_categories.company_id')
->select('companies.company_id as co_id companies.logo as co_logo, companies.name as co_name')
->get()->result();
Но то, что на самом деле делает, является различным компанией opport_id , company_logo и company_name . Таким образом, если компания (например, компания 5 и 6) имеет тот же логотип, только одна из этих компаний будет возвращена в результате. Я бы хотел, чтобы оба показали. Можно ли это сделать с помощью активной записи Codeigniter?>

Подробнее здесь: https://stackoverflow.com/questions/148 ... s-in-anoth
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»