2012-07-18 11 views
8

Ich habe eine Tabelle A mit der folgenden Definition in MySQLSchlüsselwort USING in Mysql

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

wo C_Id Referenzen mit der folgenden Definition auf einer anderen Tabelle B cid

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

So bin Ausgabe ich die folgend Abfrage

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

Aber ich bin den folgenden Fehler bekommen

Unknown column "cid" in from clause 

ich versuchte, es zu „C_Id“, aber das scheint nicht zu ändern, entweder zu arbeiten ..

Jede Hilfe sehr geschätzt wird.

Dank

Antwort

11

USING in MySQL ist nur eine Kurzform für eine Standard-ON-Klausel und funktioniert nur, wenn der Spaltenname in beiden Tabellen identisch ist.

Von the manual:

Die UNTER VERWENDUNG (column_list) Klausel Namen eine Liste der Spalten, die in beiden Tabellen vorhanden sein muss.

Stattdessen tun:

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

Beide Spalten den gleichen Namen müssen: entweder C_Id oder cid Dann wird die Verwendung Klausel arbeiten

0

Sie

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

verwenden können aber c_id ist üblich, beide Tabelle.

Verwandte Themen