[英]MySQL Query: Optimal Querying
我有這個代碼
SELECT DISTINCT idx_campus_bookinfo,c.userid as Buyer,bookname,book_explain,writedate
FROM campus_bookinfo cb
LEFT JOIN user_books ub ON idx_campus_bookinfo = id_product
LEFT JOIN customer c ON ub.id_customer = c.id_customer
where cb.idx_campus = 1 and cb.idxuser = 29 ORDER BY writedate DESC
給出的輸出
我的問題是,如何使買家專欄用同一本書的逗號分隔。
使用GROUP_CONCAT函數,但這意味着必須將DISTINCT替換為GROUP BY:
SELECT idx_campus_bookinfo,
GROUP_CONCAT(c.userid SEPARATOR ',') as Buyer,
bookname,
book_explain,
writedate
FROM campus_bookinfo cb
LEFT JOIN user_books ub ON idx_campus_bookinfo = id_product
LEFT JOIN customer c ON ub.id_customer = c.id_customer
WHERE cb.idx_campus = 1
AND cb.idxuser = 29
GROUP BY idx_campus_bookinfo, bookname, book_explain, writedate
ORDER BY writedate DESC
后續問題,我可以對用戶名進行排序嗎?
是的你可以:
SELECT idx_campus_bookinfo,
GROUP_CONCAT(c.userid ORDER BY c.userid ASC SEPARATOR ',') as Buyer,
bookname,
book_explain,
writedate
FROM campus_bookinfo cb
LEFT JOIN user_books ub ON idx_campus_bookinfo = id_product
LEFT JOIN customer c ON ub.id_customer = c.id_customer
WHERE cb.idx_campus = 1
AND cb.idxuser = 29
GROUP BY idx_campus_bookinfo, bookname, book_explain, writedate
ORDER BY writedate DESC
GROUP_CONCAT
將獲取您的用戶ID並將其連接起來。 試試看
SELECT idx_campus_bookinfo,
GROUP_CONCAT(c.userid) as Buyer, bookname, book_explain, writedate
FROM campus_bookinfo cb
LEFT JOIN user_books ub ON idx_campus_bookinfo = id_product
LEFT JOIN customer c ON ub.id_customer = c.id_customer
WHERE cb.idx_campus = 1 and cb.idxuser = 29
GROUP BY idx_campus_bookinfo
ORDER BY writedate DESC
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.