※ 引述《sing10407 (阿U)》之銘言:
推 JYHuang: 謝謝~ 06/03 21:59
→ JYHuang: 不好意思沒說清楚,不過這個CASE裡兩個Table都是多筆 06/03 21:59
→ JYHuang: 資料的集合,所以這樣JOIN的話似乎會限縮Table2的範圍 06/03 22:00
→ JYHuang: 只能取到前幾筆 06/03 22:00
: 對不起我錯了...
: 你可以google 關鍵字 sql get top 1 of each group
: 或去stackoverflow問 那裡會較多人回答
找了以前寫過的方法來改
SELECT *
FROM `TABLE1` as `a`
LEFT JOIN (
SELECT * FROM (
SELECT * FROM `TABLE2`
WHERE `id` IN(10,1)
ORDER BY `id` = coalesce(10,1) DESC
) as `b`
GROUP BY `id`
) as `b` ON `a`.key = `b`.`key`
似乎是可以的,只是不知道效率好不好,或是有更好用的寫法
因為原始的條件其實還有LEFT JOIN兩三個Table