MySQL-запрос, в котором JOIN зависит от CASE

Как я теперь знаю, CASE можно использовать только в контексте WHERE. Хотя мне нужно использовать другую таблицу в зависимости от значения столбца . То, что я пробовал, выглядит следующим образом:

SELECT
    `ft1`.`task`,
    COUNT(`ft1`.`id`) `count`
FROM
    `feed_tasks` `ft1`
CASE
    `ft1`.`type`
WHEN
    1
THEN
    (INNER JOIN `pages` `p1` ON `p1`.`id` = `ft1`.`reference_id`)
WHEN
    2
THEN
    (INNER JOIN `urls` `u1` ON `u1`.`id` = `ft1`.`reference_id`)
WHERE
    `ft1`.`account_id` IS NOT NULL AND
    `a1`.`user_id` = {$db->quote($user['id'])}

Теперь, когда я знаю, что это недопустимый синтаксис, какова ближайшая альтернатива?

11
задан Gajus 9 August 2011 в 10:36
поделиться