Hello every one.
I have 3 tables to join.
properties (id, city_id, stret_name …)
cities (id, province_id, name)
provinces (id, name).
I need to get query like this by using criteria:
SELECT * FROM properties
LEFT JOIN cities ON properties.city_id=cities.id
LEFT JOIN provinces ON cities.province.id=provinces.id
I can join cities by using CDbCriteria::with but I can’t do it with provinces so I used CDbCriteria::join
$criteria->with=array('city', 'user');
$criteria->together=true;
$criteria->join='LEFT JOIN provinces on provinces.id=city.province_id';
By running code above I gat this error:
Column not found: 1054 Unknown column ‘city.province_id’ in ‘on clause’. The SQL statement executed was: SELECT COUNT(DISTINCT t
.id
) FROM properties
t
LEFT JOIN provinces on provinces.id=city.province_id LEFT OUTER JOIN cities
city
ON (t
.city_id
=city
.id
) LEFT OUTER JOIN user
user
ON (t
.user_id
=user
.id
)
Yii generates this query
SELECT * FROM properties
LEFT JOIN provinces ON cities.province.id=provinces.id
LEFT JOIN cities ON properties.city_id=cities.id
and not this
SELECT * FROM properties
LEFT JOIN cities ON properties.city_id=cities.id
LEFT JOIN provinces ON cities.province.id=provinces.id
How can I fix it?