mysql连接查询(左连接,右连接,内连接)
一、mysql常用连接
- INNERJOIN(内连接,或等值连接):获取两个表中字段匹配关系的记录。
- LEFTJOIN(左连接):获取左表所有记录,即使右表没有对应匹配的记录。
- RIGHTJOIN(右连接):与LEFTJOIN相反,用于获取右表所有记录,即使左表没有对应匹配的记录。
mysql>select*fromname_address; +----------+------+----+ |address|name|id| +----------+------+----+ |西北一路|张三|1| |西北二路|李四|2| |西北三路|王五|3| +----------+------+----+ 3rowsinset mysql>select*fromname_age; +-----+--------+----+ |age|name|id| +-----+--------+----+ |18|张三|1| |20|王五|2| |21|路人甲|3| +-----+--------+----+ 3rowsinset
1、INNERJOIN
INNERJOIN与一般的连表查询一致,即使用逗号隔开的查询方式。
mysql>SELECTa.`name`,a.age,b.addressFROMname_ageaINNERJOINname_addressbWHERE(on)a.`name`=b.`name`; +------+-----+----------+ |name|age|address| +------+-----+----------+ |张三|18|西北一路| |王五|20|西北三路| +------+-----+----------+ 2rowsinset
2、LEFTJOIN
以左边的数据表为准
mysql>SELECTa.`name`,a.age,b.addressFROMname_agealeftJOINname_addressbon a.`name`=b.`name`; +--------+-----+----------+ |name|age|address| +--------+-----+----------+ |张三|18|西北一路| |王五|20|西北三路| |路人甲|21|NULL| +--------+-----+----------+ 3rowsinset
3、RIGHTJOIN
与LEFTJOIN相反,即以右边的数据为准
mysql>SELECTb.`name`,a.age,b.addressFROMname_agearightJOINname_addressbona.`name`=b.`name`; +------+------+----------+ |name|age|address| +------+------+----------+ |张三|18|西北一路| |王五|20|西北三路| |李四|NULL|西北二路| +------+------+----------+ 3rowsinset
以上就是MySQL连接查询的资料整理,大家如有疑问可以留言讨论,共同进步,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!