Неизвестный столбец в соединяющихся таблицах MySQL - PullRequest
0 голосов
/ 27 октября 2011

Я пытаюсь объединить таблицы и получить ошибку ниже в codeigniter.

Error Number: 1054

Unknown column 'links.client_id' in 'on clause'

SELECT *, `keywords`.`key_id`, `keywords`.`key_name` 
FROM (`keywords`) 
LEFT JOIN `resources` ON `resources`.`client_id` = `links`.`client_id` 
JOIN `links` ON `keywords`.`link_id` = `links`.`link_id` 
WHERE `links`.`client_id` = '181' ORDER BY `links`.`link_id` desc

У меня есть таблица ссылок и столбец client_id.Я тоже правильно их написал.Ниже приведен запрос в модели ссылок:

$this->db->select('*');
$this->db->from('links');
$this->db->join('resources', 'resources.client_id = links.client_id', 'LEFT');
$this->db->where('link_id', $link_id);
$query = $this->db->delete('links');
return $query;

Что может быть не так?

Ответы [ 2 ]

1 голос
/ 27 октября 2011

Вы, похоже, ссылаетесь на столбец в таблице ссылок (links. client_id), прежде чем даже упомянуть таблицу ссылок в запросе.

Также в первом левом соединении вы объединяете ключевые слова и ресурсы таблиц, но соответствующее предложение ON использует столбцы из ресурсов и клиентов таблиц.

1 голос
/ 27 октября 2011

Я думаю, что эта строка неверна:

LEFT JOIN `resources` ON `resources`.`client_id` = `links`.`client_id` 

Я предполагаю, что вы хотите что-то вроде:

LEFT JOIN `resources` ON `resources`.`client_id` = `keywords`.`client_id` 

, потому что вы присоединяетесь к resources и keywords

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