Проблема присоединения CodeIgniter - PullRequest
0 голосов
/ 15 ноября 2010

хочу выбрать из 3-х таблиц "Forum_traad", "Forum_kommentare", "users"

Я хочу собрать из всех полей в "forum_traad" и "forum_kommentare" и собрать только поля "profil_billed" в моих таблицах пользователей, и я хочу показать картинку, которая подходит пользователю, создавшему тему, и тем, кто создал ответ в теме.

У меня есть поле в "forum_traad" и "forum_kommentare", которое называется "Brugernavn", и оно должно соответствовать "Brugernavn" в таблицах "users".

Надеюсь, вы понимаете, о чем я, это то, что я сделал до сих пор:

файл модели:

 $this->db->select('*,forum_traad.indhold as traad_indhold,
                      forum_kommentare.indhold as kommentare_indhold,
                      forum_traad.brugernavn as traad_brugernavn,
                      forum_traad.id as traad_id, users.profil_billed as billed
                   ');
            $this->db->from('forum_traad');
            $this->db->join('forum_kommentare', 'forum_kommentare.fk_forum_traad = forum_traad.id');
            $this->db->join('users', 'forum_traad.brugernavn = users.profil_billed');
            $this->db->where('forum_traad.id', $id);
            $query = $this->db->get();

файл моего просмотра:

 if($query) 
 {
 echo $query->overskrift;
 } else {
 echo "der er ikke noget";
 }

1 Ответ

1 голос
/ 15 ноября 2010

один простой совет : когда вы публикуете свой вопрос, попробуйте изменить данные (ваш код) на английский ... и опишите, что некоторые параметры - данные означают в вашей программе, отношения в таблицах БД, fk-s ... в этом случае больше людей попытаются помочь вам, и некоторые вещи для них будут выглядеть более очевидными, чем если бы им пришлось расшифровывать то, что здесь происходит ...

Так что я постараюсь помочь:

Это ваше эхо sql:

SELECT *, forum_traad.indhold as traad_indhold, 
          forum_kommentare.indhold as kommentare_indhold, 
          forum_traad.brugernavn as traad_brugernavn, 
          forum_traad.id as traad_id, 
          users.profil_billed as billed 
FROM (forum_traad) 
    JOIN forum_kommentare ON forum_kommentare.fk_forum_traad = forum_traad.id 
    JOIN users ON forum_traad.brugernavn = users.profil_billed 
WHERE forum_traad.id = '5' 

Перевод с датского (я полагаю) на английский будет примерно таким:

SELECT *, forum_thread.content as thread_content, 
          forum_comments.content as comments_content, 
          forum_thread.user as thread_user, 
          forum_thread.id as thread_id, 
          users.profil_image as image 
FROM (forum_thread) 
    LEFT JOIN forum_comments 
    ON forum_comments.fk_forum_thread = forum_thread.id 
        LEFT JOIN users 
        ON forum_thread.user = users.profil_image 
WHERE forum_thread.id = '5' 

При последнем присоединении вы присоединяетесь к таблице пользователей в столбце изображения? .. попробуйте вместо этого:

LEFT JOIN users
ON forum_comments.user = users.id

В этом случае вы получите всех людей, которые публикуют комментарии в ветке (включая главный постер, потому что его пост первый?)

Я не уверен, что это правильное решение (ответ). Если это не опубликовать ваш комментарий здесь, и мы постараемся помочь.

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