MySQL 一个left join 查询疑问
ringa_lee
ringa_lee 2017-04-17 13:53:44
0
2
600

c_mart_order_info 表执行

mysql> SELECT order_id,order_sn FROM  `c_mart_order_info` WHERE  `order_sn` =  '16030515100000196809';
+----------+----------------------+
| order_id | order_sn             |
+----------+----------------------+
|       27 | 16030515100000196809 |
+----------+----------------------+
1 row in set (0.00 sec)

c_order_pay 执行

mysql> select order_sn from c_order_pay where order_sn=16030515100000196809;
+----------------------+
| order_sn             |
+----------------------+
| 16030515100000196809 |
+----------------------+
1 row in set (0.00 sec)

两个表 left join 后

mysql> select a.order_sn as a_sn,c.order_sn as c_sn from c_mart_order_info as a left join c_order_pay as c on a.order_sn=c.order_sn where a.order_id=27;
+----------------------+------+
| a_sn                 | c_sn |
+----------------------+------+
| 16030515100000196809 | NULL |
+----------------------+------+
1 row in set (0.00 sec)

两个表都有相同的 order_sn 用left join 查询,为什么只得到一个表的信息,哪里出错了?

------更---------
感谢 woderwang 提醒,我的mysql 版本是5.1,col类型不一样造成,但是某些更新版本的mysql,却没有这个问题,

ringa_lee
ringa_lee

ringa_lee

全部回覆(2)
刘奇

column 型別不一樣吧,mysql應該會有強制轉換,再用int處理再join試試

大家讲道理

去掉where a.order_id=27。
你就會發現了。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!