Codeigniter SQL Join с несколькими предложениями ON? - PullRequest
1 голос
/ 18 июля 2011

Это SQL-запрос, отображаемый codeigniter:

ВЫБРАТЬ * ИЗ (status_updates) status_updates.userid = friend_connections.userid) ИЛИ (status_updates.userid = friend_connections.friend_id)) ГДЕ status_updates.enabled = "1" AND friend_connections.enabled = "1" ORDER BY status_updates.date desc, status_updates.time desc LIMIT 20

Команды Codeigniter, которые я использовал, были:

$this->db->from('status_updates');
$this->db->order_by("status_updates.date", "desc");
$this->db->order_by("status_updates.time", "desc");
$this->db->limit(20);
$this->db->join('status_updates', '((status_updates.userid=friend_connections.userid) OR (status_updates.userid=friend_connections.friend_id))');

Что я пытаюсь сделать, это выбрать все в двух таблицах, status_updates и friend_connections. У status_updates есть идентификатор пользователя из одного столбца, который я хочу сопоставить с идентификатором пользователя или идентификатором друга из friend_connections. Может кто-нибудь сказать мне, как я могу это сделать, пожалуйста?

Также я заметил, что codeigniter удаляет две открывающие скобки после команды ON в приведенном выше SQL-запросе.

1 Ответ

0 голосов
/ 18 мая 2012

Копия вашего собственного ответа, чтобы удалить его из стека без ответа:

$sql = "SELECT * FROM (status_updates) JOIN friend_connections ON ((status_updates.userid=friend_connections.userid) OR (status_updates.userid=friend_connections.friend_id)) WHERE status_updates.enabled = "1" AND friend_connections.enabled = "1" ORDER BY status_updates.date desc, status_updates.time desc LIMIT 20";
$status = $this->db->query($sql);

Пожалуйста, не голосуйте.Это не мой ответ.

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