作者JYHuang (夏天到了,冷不起来了说)
看板Database
标题Re: [SQL ] MySQL LEFT JOIN 多条件的优先权
时间Wed Jun 3 22:51:08 2015
※ 引述《sing10407 (阿U)》之铭言:
1F:推 JYHuang: 谢谢~ 06/03 21:59
2F:→ JYHuang: 不好意思没说清楚,不过这个CASE里两个Table都是多笔 06/03 21:59
3F:→ JYHuang: 资料的集合,所以这样JOIN的话似乎会限缩Table2的范围 06/03 22:00
4F:→ 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://webptt.com/cn.aspx?n=bbs/Database/M.1433343071.A.998.html
※ 编辑: JYHuang (111.255.145.114), 06/03/2015 22:52:04
5F:推 sing10407: 等到变慢再来看吧 加油 06/03 23:22