2012-07-18 26 views
8

Tengo una tabla A con la siguiente definición en MySQLUSO palabra clave en Mysql

---------------------------------- 
id c_id  t_id 
------------------------------- 

donde las referencias C_ID cid en otra tabla B con la siguiente definición

================================================ 
id cid cname 
================================================= 

así que estoy emitiendo el siguiente consulta

select group_concat(cname) as list 
from A join B using (cid) 
where t_id="something"; 

Pero yo estoy consiguiendo el error siguiente

Unknown column "cid" in from clause 

He intentado cambiar a "C_ID", pero eso no parece funcionar bien ..

Cualquier ayuda se agradece.

Gracias

Respuesta

11

USING en MySQL es sólo una forma corta de una cláusula estándar ON, y sólo funciona cuando el nombre de la columna es idéntica en ambas tablas.

De the manual:

Los USO (column_list) Nombres cláusula una lista de columnas que debe existir en ambas tablas.

En su lugar, hacer esto:

select group_concat(B.cname) as list 
from A 
inner join B on A.c_id = B.cid 
where A.t_id = 'something'; 
2

Ambas columnas tienen el mismo nombre: ya sea C_ID o cid Entonces la cláusula usando trabajará

0

puede utilizar

select group_concat(cname) as list 
from A join B using (c_id) 
where t_id="something"; 

pero c_id es común en ambas tablas.

Cuestiones relacionadas