how to get value from two related tables

i have table setting,where i have fields




id------------device_id

1               10



another table data




id---------value----------device_id----------------time

1           abc            10                       2015-05-05 10:00:00

2           xyz            10                       2015-05-05 11:00:00  

3           xyz            10                       2015-05-05 12:00:00  

4           xyz            10                       2015-05-05 13:00:00  

5           xyz            10                       2015-05-05 14:00:00  

6           xyz            10                       2015-05-05 15:00:00 



now i have relation




public function getDeviceData()

    {

        return $this->hasMany(Positions::className(), ['device_id' => 'device_id']);

    }



i m using below query for getting data




         $cur_time='2015-05-05 09:00:00';

         $time    ='2015-05-05 18:00:00';

     $query= SpeedAlert::find()->joinwith(['deviceData'])

         ->where(['between','time',$cur_time,$time])    

         ->asArray()

         ->all();



i need above query like select from data where setting.device_id=data.device_id.

and i need data as array like below




array[0]=

        id=1

        device_id=10

            [deviceData]=array

             (

              id=1

              device_id=10

              value=abc

              time=2015-05-05 09:00:00

              )

              (

              id=2

              device_id=10

              value=abc

              time=2015-05-05 10:00:00

              )


              ......

........................

...................

)



my problem is i need data from data table but where device_id is in setting table and time between from data table.

i m using this query data is coming but it is not filtering between time




         $cur_time='2015-05-05 09:00:00';

         $time    ='2015-05-05 18:00:00';

     $query= SpeedAlert::find()->joinwith(['deviceData'])

         ->where(['between','time',$cur_time,$time])    

         ->asArray()

         ->all();