mysql基本语法四

连接查询

  • 查询所有房间,并显示房间主人
    SELECT r.*,m.manName FROM t_room r JOIN t_man m ON r.manId=m.id; – 方法一
    SELECT r.*,m.manName FROM t_room r,t_man m WHERE r.manId = m.id; – 方法二

– 查询张三所有的房间
SELECT r.* FROM t_room r JOIN t_man m ON r.manId=m.id WHERE m.manName=’张三’;

– 查询张三有几套房子
SELECT COUNT(*) FROM t_man m,t_room r WHERE m.id=r.manId
AND m.manName=’张三’ GROUP BY m.manName;

– 查询每个用户有几套房间
SELECT m.manName ‘房主’,COUNT(*) ‘房间总数’ FROM t_man m,t_room r WHERE
m.id=r.manId GROUP BY m.manName;

– 内连接是指运用比较运算符根据每个表共有的列的值匹配两个表中的行。
– 外联接是指不管有没有匹配,被定义了外联接的表数据都要出现在结果中。
– 分类
– 左外联接
– 右外联接

– 查询所有用户拥有房间的情况
SELECT m.*,r.address FROM t_man m JOIN t_room r ON m.id = r.manId;
SELECT m.*,r.address FROM t_man m LEFT JOIN t_room r ON m.id = r.manId;– 左外连接
SELECT m.*,r.address FROM t_room r RIGHT JOIN t_man m ON m.id = r.manId;– 右外连接

– 查询哪个用户没有房子
SELECT m.* FROM t_man m LEFT JOIN t_room r ON m.id = r.manId WHERE r.address IS NULL;– 方法1

SELECT m.* FROM t_man m LEFT JOIN t_room r ON m.id = r.manId GROUP BY m.manName – 方法2
HAVING COUNT(r.address)=0;

– 显示所有用户拥有几套房间
SELECT m.manName’用户’,COUNT(r.address)’房间数量’ FROM t_man m LEFT JOIN
t_room r ON m.id = r.manId GROUP BY m.manName;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值