推 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
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.255.145.114
※ 文章網址: https://www.ptt.cc/bbs/Database/M.1433343071.A.998.html
※ 編輯: JYHuang (111.255.145.114), 06/03/2015 22:52:04
推 sing10407: 等到變慢再來看吧 加油 06/03 23:22