0

非常に複雑なクエリを取得しました(少なくとも私にとっては)。支払いの準備ができているユーザーのリストを作成したいと考えています。満たす必要がある 2 つの条件があります: 注文ステータスは 3 で、合計は 50 以上である必要があります。現在、次のクエリを取得しています (Codeingiter アクティブ レコードで生成):

SELECT `services_payments`.`consultant_id`
     , `consultant_userdata`.`iban`
     , `consultant_userdata`.`kvk`, `consultant_userdata`.`bic`
     , `consultant_userdata`.`bankname`
     , SUM(`services_payments`.`amount`) AS amount
  FROM (`services_payments`)
  JOIN `consultant_userdata`
    ON `consultant_userdata`.`user_id` = `services_payments`.`consultant_id`
  JOIN `services`
    ON `services`.`id` =  `services_payments`.`service_id`
 WHERE `services`.`status` =  3
   AND `services_payments`.`paid` =  0
HAVING `amount` > 50 

services_payments テーブルには手数料が含まれ、consultant_userdata にはユーザーデータが含まれ、services には注文データが保持されます。現在のクエリでは、4 つの結果が期待されているのに 1 つの結果しか得られません。

誰かが私が間違っていることと解決策を教えてください。

4

1 に答える 1

1

ActiveRecordの場合、rsanchezの答えはもっと

$this->db->group_by('services_payments.consultant_id, consultant_userdata.iban, consultant_userdata.kvk, consultant_userdata.bic, consultant_userdata.bankname');
于 2013-09-26T14:31:29.690 に答える