sql >> Database teknologi >  >> RDS >> Mysql

MySql-forespørgsel kører, men det virker ikke i sp

Jeg er ret sikker på, at årsagen er forvirringen mellem UserId og o.UserId.

I forespørgselssammenhæng ved den ikke, at du mener argumentet til sp. Skift navnet på argumentet til noget som "arg_UserId", og erstat det i forespørgslen, hvor det er relevant.

Du kan også forenkle din forespørgselssyntaks. SELECT uden for sagsfremstillingerne er overflødig. Forudsat at sammenføjningerne til County og City altid er 1-1, kan du omskrive forespørgslen som:

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. 'PDOException' med beskeden 'SQLSTATE[HY000] [2002] Ingen rute til vært

  2. Hvordan interagerer NOW() med transaktioner?

  3. Uddrag et fuldt tidsstempel (dato inkluderet) fra en Select-forespørgsel; Oracle

  4. Min MySQL-database er løbet tør for diskplads