tôi cần phải chạy một truy vấn như:MySQL Kết quả như dấu phẩy tách ra danh sách
SELECT p.id, p.name,
(SELECT name
FROM sites s
WHERE s.id = p.site_id) AS site_list
FROM publications p
Nhưng tôi muốn các tiểu chọn để trả về một dấu phẩy tách ra danh sách, thay vì một cột dữ liệu. Điều này thậm chí có thể, và nếu như vậy, làm thế nào?
lớn Nó làm việc cho tôi Cảm ơn !!!!! – Devjosh
Ngoài ra, lưu ý nhanh rằng nếu bạn đang sử dụng PHPMyAdmin và muốn xuất danh sách được phân cách bằng dấu phẩy vào trang, hãy sử dụng 'GROUP_CONCAT (CAST (s.name AS CHAR))' hoặc người nào khác nó sẽ trả về một thứ hoàn toàn bất thường như ' [BLOB - 20 byte] '. – devios1
Mục đích là tốt và MySQL sẽ cho phép điều này, nhưng hãy cẩn thận (thường) với việc bạn sử dụng GROUP BY. Các mục trong danh sách chọn cần phải là tổng hợp hợp lệ trong ngữ cảnh của mệnh đề GROUP BY. Trong trường hợp này, p.name không hoàn toàn hợp lệ. Bất kỳ cơ sở dữ liệu nào tuân theo chuẩn SQL sẽ coi đây là lỗi. Trong trường hợp này, hoặc sử dụng MAX (p.name) trong danh sách chọn hoặc thêm p.name vào mệnh đề GROUP BY. Vì Paul có thể có nghĩa là p.id để biểu diễn khóa chính hoặc khóa duy nhất, việc thêm p.name vào mệnh đề GROUP BY sẽ không có tác động đến kết quả cuối cùng. –