Имам този проблем; Имам две таблици, една, която ще нарека tableA, и втора, tableB.
Между две таблици има релация 1:n и в двете има полета за дата; нека обясня с пример
TableA id|dateA|others TableB id|id_tablea|dateb1|sold|dateb2
Съединението между тези таблици е тривиално, проблемът ми е, когато трябва да филтрирам по дата; като изискване трябва да използвам d
1) dateb2 ако и само ако е продаден = 1 (ако има запис в tableb) 2) else dateb1 (ако има запис в tableb) 3) datea1
Това е пример за заявка:
SELECT * FROM tableA ta LEFT JOIN tableB tb on ta.id = tb.id_tablea WHERE ( if(tb.sold=1,tb.dateb2,( IFNULL(tb.dateb1,ta.datea1)) ) BETWEEN 'INT1' AND 'INT2' AND > ...
Проблемът ми е, че и двете таблици са много големи и заявката отнема много време; как мога да оптимизирам тази заявка? някаква идея?
Благодаря предварително