OP gần như đã hiểu đúng. GROUP_CONCAT
phải bao bọc các cột trong truy vấn con chứ không phải là truy vấn con hoàn chỉnh
(Tôi đang loại bỏ dấu phân tách vì dấu phẩy là mặc định):
SELECT i.*,
(SELECT GROUP_CONCAT(userid) FROM favourites f WHERE f.itemid = i.id) AS idlist
FROM items i
WHERE i.id = $someid
Điều này sẽ mang lại kết quả mong muốn và cũng có nghĩa là câu trả lời được chấp nhận sai một phần, vì bạn có thể truy cập các biến phạm vi bên ngoài trong một truy vấn con.