Mysql之JOIN
INNER JOIN(内连接,或等值连接)
获取两个表中字段匹配关系的记录。
查看写了博客的作者的所有博客的博客名称和作者user_id(m_blog),并对应上作者的名字和邮箱(m_user)
select a.username,a.email,b.title,b.user_id from m_user a inner join m_blog b on a.id=b.user_id;
INNER JOIN=JOIN
其实这里的on替换成where也可以
select a.username,a.email,b.title,b.user_id from m_user a join m_blog b where a.id=b.user_id;
LEFT JOIN(左连接)
获取左表所有记录,即使右表没有对应匹配的记录。
但是left和riht就不可以用where替换on
现在我要把所有的作者名和邮箱(m_user)都展示出来,而且不管他有没有写博客,展示出作者的id和博客的标题
select a.username,a.email,b.title,b.user_id from m_user a left join m_blog b on a.id=b.user_id;
RIGHT JOIN(右连接)
与 LEFT JOIN 相反,用于获取右表所有记录,即使左表没有对应匹配的记录。
现在要展示所有写了博客的人的user_id和博客标题(m_blog),同时展示作者的姓名和邮箱(m_user)
select a.username,a.email,b.title,b.user_id from m_user a right join m_blog b on a.id=b.user_id;