我有以下MySQL語句,它運行良好。使用MAX函數時從表中獲取字段
SELECT c.id, IFNULL(MAX(l.id), 0) as level_id
FROM course c
LEFT JOIN level l ON c.level_id = l.id
WHERE c.user_id = '123'
GROUP BY c.id
一門課程可以有多個級別,因此IFNULL(MAX(l.id), 0)
作品選擇最高。
但是,我不想返回最高級別的ID,而是希望獲得名稱。我嘗試了以下,但MySQL不喜歡在select中使用值。
SELECT c.id, IFNULL(MAX(l.id), 0) as level_id, l2.name
FROM course c
LEFT JOIN level l ON c.level_id = l.id
INNER JOIN level l2 ON level_id = l2.id
WHERE c.user_id = '123'
GROUP BY c.id
我簡化了我的提問(爲了便於閱讀),所以希望問題仍然有意義。
第一個查詢應該給你一個錯誤,你有一個JOINs中間的WHERE子句(代碼看起來和你第二次查詢的相同)。 – Kickstart
@Kickstart感謝您的發現,更新了我的問題 – xylar