Codeigniter Active Record: поля теряются при выполнении JOINPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Codeigniter Active Record: поля теряются при выполнении JOIN

Сообщение Anonymous »

Когда я выполняю соединение с Active Record CI, иногда в результате отображаются не все поля. Например, если соединение выполняется с таблицами с одинаковыми именами полей, одно из полей таблицы не будет отображаться в результатах.

Пример:

=== TABLE users ===
id INT(10)
first_name VARCHAR(255)
last_name VARCHAR(255)

=== TABLE messages ===
id INT(10)
exp_id INT(10)
dest_id INT(10)
content TEXT

=== CONTENT OF THE DATABASE ===
INSERT INTO users VALUES (1, "Bob", "Smith");
INSERT INTO users VALUES (2, "Graig", "Anderson");
INSERT INTO messages VALUES (999, 1, 2, "Hello Graig!");

=== the query ===
$this->db->where('messages.id', 999);
$this->db->join('users exp', 'users.id=messages.exp_id', 'INNER');
$this->db->join('users dest', 'users.id=messages.dest_id', 'INNER');
$res = $this->db->get('messages');

== the result ===
id exp_id dest_id content first_name last_name
999 1 2 Hello Graig! Bob Smith


Я не могу получить одновременно «dest.first_name» и «dest.first_name». Таблица «dest» находится в методе join(), но существует конфликт с таблицей «exp», в которой также есть поля «first_name» и «last_name». На самом деле это не проблема CI, это то, как ведет себя MySQL.

Это можно исправить с помощью select/aliases, но есть ли способ дополнительно заставить CI добавлять (или добавлять) псевдоним объединенной таблицы к ее полям? Результат может выглядеть так:

id exp_id dest_id content id_exp first_name_exp last_name_exp id_dest first_name_dest last_name_dest
999 1 2 Hello Graig! 1 Bob Smith 2 Graig Anderson


Подробнее здесь: https://stackoverflow.com/questions/195 ... ing-a-join
Ответить

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

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

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

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

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