例子1:select * from contact_card as c
inner join contact_card_extend as b on c.uuid = b.uuid and c.uuid='ax61t09bpcmmhsxisvbav1mdb71jzwt3' and c.status='active'
inner join contact_card_vcardinfo as info on c.uuid=info.card_id;
例子2:select * from contact_card as c
inner join contact_card_extend as b on c.uuid = b.uuid
inner join contact_card_vcardinfo as info on c.uuid=info.card_id
where c.uuid='ax61t09bpcmmhsxisvbav1mdb71jzwt3' and c.status='active'
W3b企业cms只是W3B产品下面的一个子系统,黄页系统、新闻系统、分类信息、人才系统等正在有计划的安排,最后会完成一个门户通的产品。首页、新闻中心、产品中心、留言本、业务范围、关于我们、联系我们新闻中心理论上后台可建无限级下级分类,管理员自由开启关闭、修改分类,以及排序。发表新闻时可设置4个级别,依次为普通、一星、二星、三星。星级别将显示在首页的推荐新闻内。管理员可给每个新闻添加附件。游客可发布
回复讨论(解决方案)
两者一样
不过一般都写成后者,因为 c.uuid='AX61t09bpcmmhsXISvbAv1mdb71JZwt3' AND c.status='active' 与连接无关
两者一样
不过一般都写成后者,因为 c.uuid='AX61t09bpcmmhsXISvbAv1mdb71JZwt3' AND c.status='active' 与连接无关
就是这样子
就大数据来说不知道前者是不是更快点,就理论来说前者是先通过第一个查询的出的结果来进行关联,而第一个查询已经进行了条件筛选,所以应该是要比第二个所有查询关联完之后再进行条件筛选快。我想应该是这样没有试所以就来问问。
那只是你的想象而已
数据库中有一个专门用来解析 join 命令的过程,解析时对于与连接无关的表达式都剔出来放到 where 子句中
如果你只想让主表符合条件的记录参与查询,应使用子查询
SELECT * FROM
(select * from contact_card where uuid='AX61t09bpcmmhsXISvbAv1mdb71JZwt3' AND status='active') AS c
INNER JOIN contact_card_extend AS b ON c.uuid = b.uuid
INNER JOIN contact_card_vcardinfo AS info ON c.uuid=info.card_id
受教了,谢谢大神儿!已经改正错误!









