正如我現在知道的,CASE只能在WHERE上下文中使用。雖然,我需要根據column
值使用不同的表格。我試過的樣子是這樣的:MySQL查詢在何處JOIN取決於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'])}
現在我知道這是無效的語法,最接近的選擇是什麼?
你應該合併兩個'pages'和'urls' – ajreal
你在哪裏讀到情況下,可以僅在使用條款?這不是真的。 –
合併爲字面意義上的「將兩個數據庫合併爲一個」?那麼在這種情況下,這不是一種選擇,因爲它們的結構完全不同。 @ÁlvaroG. Vicario:無論哪種方式,這都是無效的語法。因此我正在尋求替代方案。 – Gajus