MYSQL学习笔记(十二)创建高级联结

  1. 使用表别名
    SELECT ——,——
    FROM —— AS c,—— AS o,—— AS oi
    WHERE c.——=o.——
    AND oi.——=o.——
    AND ——=——;
    此处给表别名,三个例名,c、o、oi,可随意替换其他字符。可缩短SQL语句
    表别名可用于WHERE子句,SELECT列表,ORDER BY子句等
    与列别名不同,表别名只存在于查询执行中
  2. 使用不同类型的联结
    (1) 自联结
    SELECT p1.——,p1——
    FROM —— AS p1,—— AS p2
    WHERE p1.——=p2.——
    AND p2.——=——;
    此查询实际上需要的两个表上是相同的表,为避免二义性,给一个表两个不同列名
    在SELECT语句中也要明确给出p1前缀明确给出所需列全名
    (2) 自然联结
    SELECT c.*,o.——,o.——,oi.——,oi.——,oi.——
    FROM —— AS c,—— AS o,—— AS oi
    WHERE c.——=o.——
    AND oi.——=o.——
    AND ——=——;
    通配符对第一个表使用,所用其他列手动明确列出,将不会检索出重复列
    (3) 外部联结
    既检索有关联行的行,也包含没有关联行的行
    SELECT ——.——,——.——
    FROM —— LEFT OUTER JOIN ——
    ON ——.——=——.——;
    此SELECT语句使用OUTER JOIN指定联结类型
    LEFT指出FROM子句的第一个空代表的表。RIGHT指第二个空代表的表
    外部联结将包括指出的表中的所有行
  3. 使用带聚集函数的联结
    SELECT ——.——
    ——,——
    COUNT(——.——) AS ——
    FROM —— INNER JOIN ——
    ON ——.——=——.——
    GROUP BY ——.——;
    只显示有关联行的相关计数
    若使用左外部联结LEFT OUTET JOIN,将包含左表中所有行,甚至计数为0的行
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值