sql >> データベース >  >> RDS >> Mysql

MySqlクエリは実行されますが、spでは機能しません

    その理由は、UserIdとo.UserIdの混同にあると確信しています。

    クエリのコンテキストでは、spへの引数を意味していることはわかりません。引数の名前を「arg_UserId」のような名前に変更し、必要に応じてクエリでその名前に置き換えます。

    クエリ構文を簡略化することもできます。 SELECT caseステートメントの外側は冗長です。また、CountyとCityへの結合が常に1-1であると仮定すると、クエリを次のように書き直すことができます。

    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. SQLException:文字列またはバイナリデータは切り捨てられます

    2. PDOPHP-2つの日付の間のすべての行を検索-空白を表示

    3. C#の変数でMySQLクエリを使用する

    4. 同じサーバー上でMySQLデータベースを複製する方法