mysql多表查询joinon_mysql数据库多表各种join⽤法
在数据库查询中,往往会需要查询多个表的数据,⽐如查询会员信息同时查询关于这个会员的订单信息,如果分语句查询的话,效率会很低,就需要⽤到join关键字来连表查询了
下⾯是例⼦分析
会员表:user
user_id user_name
1 张三
2 李四
3 王⽼五
订单表:order
order_id user_id order_name
1 3 机械键盘套装
2 1 ⿏标套装
3 1 机械键盘套装
4 5 机械键盘套装
5 3 显卡
6 3 散热器
vue页面跳转传递对象如果我想查询会员名张三的订单数据
平常的⽅法是
先查询张三的id
SELECT user_id FROM user WHERE user_name ='张三' LIMIT 1;
获取到张三的id为1之后,再通过会员id来查询订单
SELECT * FROM order WHERE user_id = 1;
如果⽤join连接的话,直接⼀条语句就可以搞定
SELECT o.* FROM user AS u LEFT JOIN order AS o ON o.user_id=u.user_id WHERE u.user_name='张三';
这样就可以直接查询到张三的订单信息了
join分
left join,返回左表所有符合条件的记录和右表连接相等的记录
inner join,只返回两个表中联结字段相等的⾏
right join,返回右表所有符合条件的记录和左表连接相等的记录
语法为
python编程图解FROM table1 LEFT JOIN(INNEER RIGHT) table2 ON table1.field1 compopr table2.field2说明:table1, table2参数⽤于指定要将记录组合的表的名称。field1, field2参数指定被联接的字段的名称。且这些字段必须有相同的数据类型及包含相同类型的数据,但它们不需要有相同的名称。compopr参数
指定关系⽐较运算符:"=", "", "<=", ">=" 或 "<>"。如果在INNER JOIN操作中要联接包含Memo 数据类型或 OLE Object 数据类型数据的字段,将会发⽣错误。
下⾯是⼏个例⼦
INNER JOIN
SELECT o.* FROM user AS u INNER JOIN order AS o ON o.user_id=u.user_id WHERE u.user_name='李四';
python怎么读取文件路径查询结果是空的
因为inner join 只返回连接相等的⾏,order表是没有关于李四的订单记录的
LEFT JOIN
head first系列书籍有哪些SELECT o.* FROM user AS u INNER JOIN order AS o ON o.user_id=u.user_id WHERE u.user_name='李四';
查询结果为
user_id user_name
1 张三
因为order表没有内容,所以只返回左表的数据墨香铜臭抄袭霹雳正主说话了
RIGHT JOIN 和LEFT JOIN相反
例如我想查询买了机械键盘套装的会员有多少
SELECT o.* FROM user AS u INNER JOIN order AS o ON o.user_id=u.user_id der_name='机械键盘套装';查询结果为
user_id user_name order_id user_id order_name
1 张三 1 3 机械键盘套装
1 张三 3 1 机械键盘套装
4 5 机械键盘套装
因为会员id 5 数据不存在,所以只返回订单表的内容
mysql语句多表查询这就是 mysql join区别和⽤法了
本⽂为仙⼠可原创⽂章,转载⽆需和我联系,但请注明来⾃仙⼠可博客www.php20
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论