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

Truy vấn MySql chạy nhưng nó không hoạt động trong sp

Tôi khá chắc rằng lý do là sự nhầm lẫn giữa UserId và o.UserId.

Trong ngữ cảnh truy vấn, nó không biết rằng bạn có nghĩa là đối số cho sp. Thay đổi tên của đối tượng thành một cái gì đó như "arg_UserId" và thay thế tên đó trong truy vấn nếu thích hợp.

Bạn cũng có thể đơn giản hóa cú pháp truy vấn của mình. SELECT bên ngoài các câu lệnh case là thừa. Ngoài ra, giả sử rằng các liên kết đến Quận và Thành phố luôn là 1-1, bạn có thể viết lại truy vấn dưới dạng:

SELECT op.OrderId, O.Number,  SUM(op.Price) Price,
       CONCAT(A.Detail, ' ', C.Name, ' / ', Ci.Name) AS UserAddress,
       (CASE WHEN O.Status =0 THEN 'Onay Bekliyor'  WHEN O.Status =1 THEN 'Onaylandı' WHEN O.Status = 2 THEN 'Reddedildi' END) Status,
       O.Creation,
       (CASE WHEN O.IsDelivered =0 THEN 'Teslim Edilmedi' ELSE 'Teslim Edildi' END) IsDelivered,
       group_concat(P.Name) as Product
FROM kobiakinlar.product P JOIN
     kobiakinlar.orderproduct op
     ON op.ProductId = P.productId JOIN
     kobiakinlar.order O
     ON O.orderId = op.OrderId JOIN 
     kobiakinlar.address A ON A.addressId = O.AddressId join
     County C
     ON C.CountyId = A.CountyId join
     City AS Ci
     ON C.CityId = Ci.CityId
WHERE O.UserId = arg_UserId
GROUP BY op.OrderId;



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Sự khác biệt giữa MySQL Native Driver và MySQL Client Library

  2. Tạo bảng bằng vb.net, mysql

  3. truy vấn mysql để chọn tất cả các hàng của tháng hiện tại?

  4. Đặt hàng nhiều cột ASC

  5. Lỗi biến không xác định trong tập lệnh PHP của tôi