Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

số mysql không hoạt động bình thường?

Bạn cần thêm tất cả các cột bạn đang chọn trong SELECT ngoại trừ mệnh đề c.USER_ID vào GROUP BY mệnh đề như sau:

group by c.ID, c.otherfields, l.title,..

CHỈNH SỬA: Tôi nghĩ những điều sau sẽ hoạt động bình thường:

SELECT count(c.USER_ID) as total_commments_user , 
       c.*, u.NAME, l.TITLE as LINK_TITLE, u.AUTH_IMG
FROM `PLD_COMMENT` c 
left outer join `PLD_USER` u ON (u.ID = c.USER_ID) 
left outer join `PLD_LINK` l ON (l.ID = c.ITEM_ID) 
group by c.ITEM_ID, c.USER_ID
ORDER BY c.USER_ID, l.ID 

Ví dụ: Nếu bạn có dữ liệu mẫu sau:

  • PLD_LINK:

    ID   STATUS   TITLE    
    1      1      title1
    2      2      title2
    
  • PLD_USER:

    ID     NAME
    8    Mahmoud
    9     Ahmed
    
  • PLD_COMMENT:

    ID   ITEM_ID USER_ID   STATUS
    4      1        8        1
    5      1        8        1
    6      1        8        1
    7      2        8        2
    8      2        8        2
    9      1        9        1
    10     1        9        1
    

Trường hợp 1:người dùng Mahmoud được hiển thị hai lần:

Sau đó, truy vấn trước đó sẽ cung cấp cho bạn số lượng nhận xét cho từng Người dùng và cho từng mục, như sau:

total_commments_user  ID  ITEM_ID   USER_ID   Name
         3            4      1         8     Mahmoud
         2            7      2         8     Mahmoud
         2            9      1         9      Ahmed

Lưu ý rằng người dùng Mahmoud được hiển thị hai lần với một số lượng khác nhau, vì anh ta có Item_Id khác .

Trường hợp 2:người dùng Mahmoud chỉ được phát một lần:

Nếu bạn muốn nhận được số lượng nhận xét của mỗi người dùng cho tất cả các mục thì bạn sẽ chỉ cần nhóm theo USER_ID và bạn sẽ có:

total_commments_user  ID  ITEM_ID   USER_ID   Name  
         5            4      1         8     Mahmoud
         3            9      1         9      Ahmed

Như bạn có thể thấy bây giờ, người dùng Mahmoud chỉ được hiển thị một lần, vì chúng tôi đã nhập Item_Id .

Sau đó, bạn có thể lọc theo trạng thái hoặc những gì đã từng.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Không thể tạo bảng trong MySQL workbench 5.2.40

  2. Mysql Chèn số thứ tự theo trường VARCHAR

  3. Hỗ trợ PDO cho nhiều truy vấn (PDO_MYSQL, PDO_MYSQLND)

  4. Vi phạm ràng buộc toàn vẹn:1452 laravel

  5. Cách cấu hình MySQL trong XAMPP để hoạt động với IPv6