2011-10-27 11 views
0

テーブルに参加してcodeigniterで以下のエラーを取得しようとしています。テーブルを結合する際の不明な列MySQL

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 

私はそこにリンクテーブルとクライアント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; 

何が間違っている可能性がありますか?

答えて

0

私は、この行が間違っていると思う:

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

私はあなたが望むようなもの推測しています:あなたはresourceskeywords

+0

私はキーワードにclient_idを持っていません... –

+0

@ Jae Kun Choiあなたは 'keywords'と' resources'という2つのテーブルを結合しているので、それらの関係が何であるかを指定する必要があります。 – jeroen

0

に参加しているので、あなたが参照しているように見える

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

をリンクテーブル内の列(linksclient_id)を使用して、クエリ内のリンクテーブルを参照することもできます。

また、最初の左結合ではテーブルのキーワードとリソースを結合しますが、関連するON句はテーブルのリソースとクライアントの列を使用します。

+0

まあ、 'links.client_id'に参加しようとする前に' links'が含まれるように、あなたの結合の順序を入れ替えるだけです。 – danneth

関連する問題