Sql 内部联接中的列名称不明确错误
我试图使用内部联接从4个表中提取信息 例如: 表C有以下列: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
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:谢谢,伙计,它工作得很好,可能是英文版的。