JOIN 关联查询是mysql开发应用中多表之间一起查询非常重要的一个sql命令了,下面我给各位整理了关于JOIN 关联查询的一些小例子与经验分享,希望对各位会有所帮助.
现在我们先来看在SQL 关联查找JOIN,这是我初期的一大问题,,两个表之间怎么建立关联,实际上,有个东西叫做JOIN,然后还有INNER JOIN,RIGHT JOIN,LEFT JOIN.
我基本上用的都是LEFT JOIN,那么RIGHT JOIN大家懂得=A=其他我也没用过.
不同的参考:
JOIN: 如果表中有至少一个匹配,则返回行
LEFT JOIN: 即使右表中没有匹配,也从左表返回所有的行
RIGHT JOIN: 即使左表中没有匹配,也从右表返回所有的行
FULL JOIN: 只要其中一个表中存在匹配,就返回行
这里举一个M-Show用到的栗子,代码如下:
- SELECTshow_person.uid,show_person.nickname,show_category.category,show_category.idFROMshow_personLeftJOINshow_categoryonshow_person.category=show_category.idWHEREshow_category.id=$categoryORDERBYshow_person.uid
把person和category建立关联,主表(自造词= =)是person,所以person完整输出,即使没有category定义.
SELECT部分用表.字段,如果一个表要全部选中,字段选择用 *,但是据说效率会变低.
现在再次用到又学到了点新的东西,首先还是这段代码,还是的理由是因为上一篇文章,代码如下:
- SELECTpr_rates.pid,count(pr_rates.ip),pr_works.title,pr_works.realname,pr_college.nameFROMpr_worksRIGHTJOINpr_ratesONpr_rates.pid=pr_works.pidLEFTJOINpr_collegeONpr_works.college=pr_college.idGROUPBYpidORDERBYcount(pr_rates.ip)DESC
- //开源软件:phpfensi.com
为什么会有Left Join Right Join,相当于一个人站在中间,左右手拉手,两个人自然是没有感觉的,其实中间一个人起到了连结的左右,他的左手连通着一个人的右手,右手连通着一个人的左手,建立了关联,于是乎因此我们选择一个与两个表都有共同项的表作为中间人,差不多就是这个意思.