2012-07-18 35 views
8

Tôi có một bảng A với các định nghĩa sau đây trong MySQLSỬ DỤNG từ khóa trong Mysql

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

nơi tham khảo c_id CID trên một bảng B với các định nghĩa sau đây

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

Vì vậy, tôi đang phát hành sau truy vấn

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

Nhưng tôi gặp phải lỗi sau

Unknown column "cid" in from clause 

tôi đã cố gắng thay đổi nó để "c_id", nhưng điều đó không có vẻ làm việc hoặc ..

Any help is appreciated.

Cảm ơn

Trả lời

11

USING trong MySQL chỉ là một hình thức viết tắt của một ON khoản tiêu chuẩn, và chỉ hoạt động khi tên cột là giống hệt nhau trong cả hai bảng.

Từ the manual:

Các SỬ DỤNG (column_list) Tên khoản một danh sách các cột rằng phải tồn tại trong cả hai bảng.

Thay vào đó, làm điều này:

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

Cả hai cột cần cùng tên: hoặc c_id hoặc cid Sau đó, mệnh đề sử dụng sẽ làm việc

0

bạn có thể sử dụng

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

nhưng c_id là phổ biến cả hai bảng.

Các vấn đề liên quan