
1 alexsunxl 2018 年 6 月 14 日 典型的想得太多, 做得太少, 哈哈哈 别纠结这些了, 最后还是看场景看业务看历史 这种东西没有最佳实践的,只能说相对较合适, 至于怎么是合适,那还是多积累吧 |
2 changrui0608 OP @alexsunxl 兄弟,我不是做的太少,我是做到这儿了不知道怎么办才来问的,你这话就和没说一样啊... |
3 infreboot 2018 年 6 月 14 日 你可以换种方式,多查几次。别想着一条 SQL 查出来。。以前我也是想一条查出来,结果发现是为难自己 |
4 DavidNineRoc 2018 年 6 月 14 日 看了一下 lv 的 SQL ## 先查询 posts 表 select * from posts where xxxx # 连接查询关联关系 SELECT `tags`.*, `post_tag`.`post_id` AS `pivot_post_id`, `post_tag`.`tag_id` AS `pivot_tag_id` FROM `tags` INNER JOIN `post_tag` ON `tags`.`id` = `post_tag`.`tag_id` WHERE `post_tag`.`post_id` IN (## 这里是 posts 表查询的数据 ## ) ## 然后将第二次查询的数据按照 pivot_post_id 分组,循环一遍 posts 查询出的数据,直接按 pivot_post_id 组设置为单个 posts 的属性。 |
5 AlphaTr 2018 年 6 月 14 日 关系型数据库一次查询返回就会出现「 N 个 Tag 的 Post 就会重复出现 N 次」这种情况。一种方式就是你说的,手动编程排重;另一种方式就是多次查询。或者可以直接上非关系型数据库; |
6 changrui0608 OP @DavidNineRoc 多谢,查了一下午似乎是这种方法最合适,顺便 lv 全程是什么 |
7 cxbig 2018 年 6 月 14 日 via iPhone 关键词:ORM eager loading 抓 SQL 看看人家怎么处理的就明白了 |
8 Foolt 2018 年 6 月 14 日 MySQL 去重关键字 DISTINCT 了解一下 |
9 DavidNineRoc 2018 年 6 月 15 日 @changrui0608 laravel |