簡體   English   中英

查詢連接三個表yii

[英]query joining three tables yii

如何將mysql查詢轉換為yii。

我有3張桌子

  1. user_header
  2. 顧客
  3. customer_ratings

這是我的SQL查詢

SELECT t.email 
FROM   otz_user_header t 
       JOIN otz_customers r 
         ON t.user_id = r.customer_user_id 
       JOIN otz_customer_ratings cr 
         ON cr.customer_user_id = r.customer_user_id 
WHERE  r.rate_auto_approve = 0 
       AND r.rate_email_time IS NOT NULL 
       AND r.total_rating_count IS NOT NULL 
       AND cr.rating_date < Curdate() 
       AND cr.rating_date > Date_sub(Curdate(), INTERVAL 7 day) 

如何將此查詢轉換為yii?

提前致謝。

“itachi”的答案是正確的,但如果你正在以activerecord的方式尋找......

model: UserHeader

關系:

'activeCustomers' => array(
     self::HAS_MANY, 
     'Customer', 
     'customer_user_id', 
     'condition' => 'activeCustomers.rate_auto_approve=0 
                  AND activeCustomers.rate_email_time IS NOT NULL 
                  AND activeCustomers.total_rating_count IS NOT NULL'
),

型號: 客戶

關系:

'lastWeekRatings' => array(
     self::HAS_MANY, 
     'CustomerRating', 
     'customer_user_id', 
     'condition' => 'lastWeekRatings.rating_date < CURDATE() 
        AND lastWeekRatings.rating_date > DATE_SUB( CURDATE(), INTERVAL 7 DAY )'
),

以下代碼返回與查詢相同的MODEL對象。 (我還沒有測試過)

$useremails = UserHeader::model()
     ->with('activeCustomers', 'activeCustomers.lastWeekRatings')
     ->findAll(array(
           'select' => 't.email'
      ));
print_r($useremails);

USE DAO( 數據訪問對象

模型


public function test(){
        $sql = "SELECT t.email
            FROM otz_user_header t
            JOIN otz_customers r ON t.user_id = r.customer_user_id
            JOIN otz_customer_ratings cr ON cr.customer_user_id = r.customer_user_id
            WHERE r.rate_auto_approve =0
            AND r.rate_email_time IS NOT NULL
            AND r.total_rating_count IS NOT NULL
            AND cr.rating_date < CURDATE( )
            AND cr.rating_date >DATE_SUB( CURDATE( ) , INTERVAL 7
            DAY )";

        return Yii::app()->db->createCommand($sql)->queryAll();
            }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM