Sql 内部联接中的列名称不明确错误

Sql 内部联接中的列名称不明确错误,sql,join,Sql,Join,我试图使用内部联接从4个表中提取信息 例如: 表C有以下列: F_name, L_Name, A_ID Desc, Abbr, N_ID TableN有以下内容: Sub, Date, A_ID, N_ID, O_ID F_name, L_Name, O_ID, TableM有以下列: F_name, L_Name, A_ID Desc, Abbr, N_ID TableO有以下内容: Sub, Date, A_ID, N_ID, O_ID F_name, L_Name, O_I

我试图使用内部联接从4个表中提取信息

例如:

表C有以下列:

F_name, L_Name, A_ID
Desc, Abbr, N_ID
TableN有以下内容:

Sub, Date, A_ID, N_ID, O_ID
F_name, L_Name, O_ID, 
TableM有以下列:

F_name, L_Name, A_ID
Desc, Abbr, N_ID
TableO有以下内容:

Sub, Date, A_ID, N_ID, O_ID
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”

使用别名。试试这个

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

我在连接两张桌子时遇到了类似的问题。就我而言,我使用的是:

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();
}
但是,在放置where时,idClient列被重复,对于Clientes和Cotizaciones表,我必须放置:

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


要检测我想要检查的表

请使用
AS
关键字重命名其中一个名为
F_name
的列,就像
C.F_name为CFName
一样,尽管您已经指定了它们各自来自哪个表,您仍然为结果集选择了2列--
C.F\u Name
O.F\u Name
。给其中一个或两个指定一个不同的别名--
O.F_Name作为O_F_Name
L\u Name
也会出现此问题。是否按名称检索结果列?否则甲骨文不会发布这个警告。@adaam:谢谢,伙计,它工作得很好,可能是英文版的。