Ben bir kullanıcının tek tek abone olduğunuz kategorileri görüntülemek ve aynı zamanda varsayılan ait bölgede mevcut olanlar sayede bir sistem var.
So, the tables are as follows: Categories UsersCategories RegionsCategories
Ben de onlar için abone olduğunuz tüm bireysel kategoriler kendi bölgedeki tüm kategoriler için db sorgulama ve ediyorum.
Şöyle Benim sorgu:
Select * FROM (categories c)
LEFT JOIN users_categories uc on uc.category_id = c.id
LEFT JOIN regions_categories rc on rc.category_id = c.id
WHERE (rc.region_id = ? OR uc.user_id = ?)
En azından ben Cake ORM katmanı kullanarak kuruyorum, bu sorgu inanıyorum, yani tam bir tanesidir:
$conditions = array(
array( "OR" => array (
'RegionsCategories.region_id' => $region_id,
'UsersCategories.user_id' => $user_id
)
));
$this->find('all', $conditions);
Bu inanılmaz yavaş çıkıyor (bazen yaklaşık 20 saniye kadar. Her tablo yaklaşık 5000 satır var). Burada hata benim tasarım mı?
How can I retrieve both the users' individual categories and those within their region all in one query without it taking ages?
Teşekkürler!