1
kchum 2014-09-27 17:07:04 +08:00 via iPhone
随便搜,都有例子吧…
|
2
kofj OP @kchum 内联外联的概念我知道,关键是用法,我认为这种情况应该是内联查询,过滤掉无效数据,而不是LEFT JION列出所有的数据。
|
3
zts1993 2014-09-27 19:37:06 +08:00
这个不是过滤的问题。。。
这是数据关系的问题。。 内连比如 A.id inner join b.in 一般来说,a.id 和 b.id 多为 一一对应 ,假设a.id 是用户, b表示他的详细信息。 其中b中每一个id只与a.id一个对应 ,select 每个人应该只有一条 外连的话,左右差不多我们以left join 举例 A.id left join b.in 就不一样了。比如a.id 是用户,b表示他的项目 每个人可能有很多project,那我select一个人的时候 使用left join可以直接找出 他所有的projec ,这种情况如果你用inner join肯定只能找一条,其实这样的查询有时可以改成子查询或者分步查询了,当然具体情况还要根据场景来看 |
4
asmore 2014-09-27 19:39:55 +08:00
不一定非得用join吧,直接查询College, where 收藏人uid = 当前用户id
还快过程join |
5
SoloCompany 2014-09-27 20:41:13 +08:00
@zts1993 不要误导好不好,inner join 怎么变成只能用于一一对应了。
to 楼主,估计你这个用例能用上 left join 的 key 就只有 article.id <-> user.uid 了 left join 可以保证即使收藏的文章的作者挂了,也能列出来,这也没有啥不妥的地方(前提是你的数据无外键) |