2011-01-05 48 views
5

tôi cần phải thực hiện một truy vấn mà tạo ra 3 cột đến từ 2 bảng trong đó có các quan hệ sau:mysql tham gia với nhiều giá trị trong một cột

BẢNG 1 có ID Cột có liên quan đến TABLE 2 với cột ID2

Trong TABLE 1 có một cột được gọi là người dùng Trong TABLE 2 có một cột được gọi là tên

Có thể có 1 người dùng duy nhất nhưng có thể có nhiều tên liên quan đến người dùng đó.

Nếu tôi làm như sau, tôi nhận được tất cả dữ liệu NHƯNG cột người dùng lặp lại chính nó cho mỗi tên mà nó đã liên kết. Những gì tôi muốn được sử dụng để xuất hiện duy nhất nhưng các cột tên xuất hiện với tất cả các tên được liên kết với cột người dùng nhưng được phân tách bằng dấu phẩy, như sau:

chọn người dùng, tên từ TABLE1 tham gia trái TABLE2 trên TABLE1.id = TABLE2.id

Điều này sẽ hiển thị cho người dùng lặp lại mọi lúc một tên xuất hiện cho người dùng đó. những gì tôi muốn là để xuất hiện như thế này:

USER - TÊN
cyrex - pedrox, rambo, Zelda
homeboy - carmen, carlos, tom, sandra
jerry - Seinfeld, christine
ninja - soloboy

vv ....

Trả lời

11

Điều bạn đang tìm kiếm là toán tử GROUP_CONCAT.

select user, GROUP_CONCAT(names SEPARATOR ',') 
from TABLE1 left join TABLE2 on TABLE1.id = TABLE2.id 
group by user 
+1

Đây là câu trả lời rất hay. cảm ơn rất nhiều eric. –

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