11

MySQLで次の定義を持つテーブルAがあります

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

ここで、c_idは、次の定義を持つ別のテーブルBのcidを参照します

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

だから私は次のクエリを発行しています

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

しかし、次のエラーが発生します

Unknown column "cid" in from clause

「c_id」に変更してみましたが、うまくいかないようです。

どんな助けでも大歓迎です。

ありがとう

4

3 に答える 3

19

USINGMySQLでは、標準ON句の短縮形であり、両方のテーブルで列名が同じ場合にのみ機能します。

マニュアルから:

USING(column_list)句は、両方のテーブルに存在する必要がある列のリストを指定します。

代わりに、これを行います。

select group_concat(B.cname) as list 
from A 
inner join B on A.c_id = B.cid 
where A.t_id = 'something';
于 2012-07-18T20:16:50.723 に答える
2

両方の列に同じ名前が必要です:c_idまたはcidのいずれか次に、using句が機能します

于 2012-07-18T20:17:35.030 に答える
0

あなたが使用することができます

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

しかし、c_id両方のテーブルに共通です。

于 2014-01-02T11:49:28.650 に答える