Şu anda bildiğim gibi, CASE yalnızca WHERE bağlamında kullanılabilir. Yine de, column
değerine bağlı olarak farklı tablo kullanmam gerekiyor. Ne ben denedim şuna benzer:MySQL sorgusu JOIN'in bağımlı olduğu durum CASE
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'])}
Şimdi en yakın alternatif nedir, bu geçersiz sözdizimi biliyoruz?
hem 'pages' ve' O VAKA okudun – ajreal
urls' sadece NEREDE kullanılabilir birleştirme gerektiğini maddeleri? Bu doğru değil. –
, kelimenin tam anlamıyla "iki veritabanını bire birleştir" olarak birleştiriliyor mu? iyi, bu durumda bu bir seçenek değil çünkü ikisi de tamamen farklı bir yapıya sahipler. @ Álvaro G. Vicario: Her iki şekilde de, bu geçerli bir sözdizimi değil. Bu yüzden bir alternatif rica ediyorum. – Gajus