Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Подскажите как сделать множественный join / 6 сообщений из 6, страница 1 из 1
19.10.2015, 15:59:53
    #39080267
imediasun
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите как сделать множественный join
Я пользуюсь фреймворком в нем эктив рекордс такого плана
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
$this->db->select('*');
$this->db->from('blogs');
$this->db->join('comments', 'comments.id = blogs.id');

$query = $this->db->get();

// Генерирует:
// SELECT * FROM blogs
// JOIN comments ON comments.id = blogs.id

Но я помыслил так же получить данные и из других таблиц и написал сдедующее
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
$join_array[0]=array('table'=>'pages','column'=>'pages.page_type=page_types.id');
	$join_array[1]=array('table'=>'pages','column'=>'pages.layout=layouts.id');
	$join_array[2]=array('table'=>'pages','column'=>'pages.author=authors.id');
	$data['content']=$this->table_model->get_join($table[0]['name_table'],null,null,$join_array);

public function get_join($table,$id_key,$obj_id,$join_array){
	if(!$table){
	$table=$this->table;
	}
	$this->db->from($table);
    if(!$id_key){
	$id_key=$this->id_key;
	}
	if($id_key and $obj_id){
	$this->db->where($id_key,$obj_id);
	}
	foreach($join_array as $key=>$val){
	$this->db->join($val['table'],$val['column']);
	}
	$query=$this->db->get();
	return $query->result_array();
	}


Но получил вот такую реакцию
Not unique table/alias: 'pages'

SELECT * FROM (`pages`) JOIN `pages` ON `pages`.`page_type`=`page_types`.`id` JOIN `pages` ON `pages`.`layout`=`layouts`.`id` JOIN `pages` ON `pages`.`author`=`authors`.`id`

Как сделать этот множественный join
...
Рейтинг: 0 / 0
19.10.2015, 16:05:36
    #39080280
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите как сделать множественный join
imediasun,

Во-первых, показывайте конечный SQL-запрос, а не код на неизвестном языке.

В-вторых, в запросе упоминаются такие вещи как `layouts`.`id` и `authors`.`id`, хотя отсылок к таблицам layouts и authors нет.
...
Рейтинг: 0 / 0
19.10.2015, 16:57:40
    #39080394
imediasun
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите как сделать множественный join
Код sql вот
Код: sql
1.
SELECT * FROM (`pages`) JOIN `pages` ON `pages`.`page_type`=`page_types`.`id` JOIN `pages` ON `pages`.`layout`=`layouts`.`id` JOIN `pages` ON `pages`.`author`=`authors`.`id`


а какие отсылки должны быть я вас не понимаю
Модератор: Пожалуйста, для выделения кода используйте тэг SRC, а не тэг нижнего индекса SUP
...
Рейтинг: 0 / 0
19.10.2015, 17:11:45
    #39080425
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите как сделать множественный join
imediasunа какие отсылки должны быть я вас не понимаюВы используете поля `layouts`.`id` и `authors`.`id` из тех таблиц, которых нет в секции FROM. Это недопустимо синтаксисом.
Вероятно, вместо трехкратного употребления таблицы `pages` без алиасов (что тоже недопустимо) там должны быть таблицы `pages`, layouts и authors.
...
Рейтинг: 0 / 0
19.10.2015, 17:22:05
    #39080452
imediasun
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите как сделать множественный join
да сформулируйте пожалуйста ввиде запроса sql
...
Рейтинг: 0 / 0
19.10.2015, 17:34:00
    #39080475
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите как сделать множественный join
imediasunда сформулируйте пожалуйста ввиде запроса sqlВероятно, как-то так:
Код: sql
1.
2.
3.
4.
5.
SELECT *
FROM `pages`
  JOIN `page_types` ON `pages`.`page_type`=`page_types`.`id`
  JOIN `layouts` ON `pages`.`layout`=`layouts`.`id`
  JOIN `authors` ON `pages`.`author`=`authors`.`id`

Но насколько это соответствует желаемому результат - не знаю.
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Подскажите как сделать множественный join / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]