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

USING在 MySQL 中只是标准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 回答