1.首先说明是三个表要进行链接查询,就是根据where的条件的写法位置不一样会产生不同的结果
2.不明白这是为什么,and条件都是并列的,不管先后顺序应该输出的结果集是一样的
3.代码如下:
3.1 输出结果0个
SELECT orders.* FROM `orders` LEFT JOIN `order_card_items`
ON `order_card_items`.`order_id`='orders.id' LEFT JOIN `cards` ON
`order_card_items`.`card_code`='cards.card_code'
WHERE ((((`orders`.`created_at` >= 0) AND (`orders`.`created_at` <= 1474613421))
AND (`orders`.`type`=1)) AND (`order_card_items`.`flow_number`='10'))
AND (`cards`.`provider_id`='400008');
Empty set, 1 warning (0.00 sec)
3.2输出结果60个
SELECT `orders`.* FROM `orders` LEFT JOIN `order_card_items` ON `orders`.`id` = `order_card_items`.`order_id` LEFT JOIN `cards` ON `order_card_items`.`card_code` = `cards`.`card_code` WHERE (((((`orders`.`created_at` >= 0) AND (`orders`.`created_at` <= 1474613722)) AND (`orders`.`type`=1)) AND (`order_card_items`.`flow_number`='10')) AND (`cards`.`provider_id`='400008'))
left join采用的是左连接,以左为主,所以更你的and顺序是由关系的。。