连接表MySQL时的未知列

时间:2011-10-27 01:58:49

标签: php mysql codeigniter

我正在尝试连接表并在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

我有Links表和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 个答案:

答案 0 :(得分:1)

我认为这一行是错误的:

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

我猜你想要的东西是:

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

因为您要加入resourceskeywords

答案 1 :(得分:1)

在您提到查询中的链接表之前,您似乎在引用链接表(linksclient_id)中的列。

同样在第一个左连接中,您将连接表关键字和资源,但相关的ON子句使用表资源和客户端中的列。