私が今認識しているように、CASEはWHEREコンテキストでのみ使用できます。しかし、私はcolumn
値に応じて別のテーブルを使用する必要があります。私が試したことは、次のようになります:JOINがCASEに依存するMySQLクエリ
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'])}
これは無効な構文であることが分かりましたので、最も近い選択肢は何ですか?
あなたは両方 'pages'と'あなたがそのような場合を読みました – ajreal
urls'のみWHEREで使用することができますをマージする必要があります節?それは真実ではありません。文字通り「2つのデータベースを1つにマージする」のようにマージしますか? –
まあ、その場合は、どちらも完全に異なる構造を持っているので、これはオプションではありません。 @ÁlvaroG. Vicario:いずれにせよ、これは有効な構文ではありません。したがって、私は代替案を求めています。 – Gajus