内部联接中的模糊列名称错误

时间:2014-04-19 16:57:14

标签: sql join

我正在尝试使用内部联接

从4个表中提取信息

例如:

TableC包含以下列:

F_name, L_Name, A_ID

TableN具有以下内容:

Sub, Date, A_ID, N_ID, O_ID

TableM包含以下列:

Desc, Abbr, N_ID

TableO具有以下内容:

F_name, L_Name, O_ID, 

所以我正在尝试的查询是

Select C.F_Name, C.L_Name, N.Sub, N.Date, M.Desc, M.Abbr, O.F_Name, O.L_Name
From TableN N
Inner Join TableC C
On N.A_ID = C.A_ID
Inner Join TableM M
On N.N_ID=M.N_ID
Inner Join TableO O
On O.O_ID=N.O_ID

我已经描述了上面的场景,当我运行查询时,我收到以下错误:

不明确的列名'F_Name'

2 个答案:

答案 0 :(得分:3)

使用别名。试试这个。

Select C.F_Name as CFNAME, C.L_Name as CLNAME, N.Sub, N.Date, M.Desc, M.Abbr, O.F_Name as OFNAME, O.L_Name as OLNAME
From TableN N
Inner Join TableC C
On N.A_ID = C.A_ID
Inner Join TableM M
On N.N_ID=M.N_ID
Inner Join TableO O
On O.O_ID=N.O_ID

答案 1 :(得分:-2)

连接两个表时,我遇到了类似的问题。就我而言,这就是我所使用的:

public function PdfVista(){

 $this->db->select ('Clientes.idCliente, Cotizaciones.nomCotizacion, Cotizaciones.compCliente, Cotizaciones.nomProyecto,Cotizaciones.agente, Cotizaciones.fVenCotizacion, Cotizaciones.fModCotizacion, Clientes.razSocCliente, Clientes.telFijoCliente');

 $this->db->from('Cotizaciones');

 $this->db->join('Clientes', 'Clientes.idCliente=Cotizaciones.idCliente');

 $this->db->where('idCliente',10000);

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

 return $respuesta->result();
}

但是在放置位置时,对于Clientes表和Cotizaciones表,重复了idClient列,我不得不放置:

$this->db->where('Clientes.idCliente',10000);

检测要检查的表