mysql多个id相同_MySQL必知必会 笔记(六)

笔记对应书本的十六至十八章「written by Talaxy on 3/23/20」使用表别名除了列名和计算字段外,SQL还允许给表名起别名,比如:select 列一, 列二from 表一 as p1, 表二 as p2, 表三 as p3where p1.列三 = p2.列三 and p3.列四 = p2.列四 and 列五 = 'XXX'表别名只在查询执行中使用,与列别名不一样,...
摘要由CSDN通过智能技术生成

ea18ff594cfa6103d9abd2654d20b276.png

笔记对应书本的十六至十八章

「written by Talaxy on 3/23/20」


使用表别名

除了列名和计算字段外,SQL还允许给表名起别名,比如:

select 列一, 列二
from 表一 as p1, 表二 as p2, 表三 as p3
where p1.列三 = p2.列三
  and p3.列四 = p2.列四
  and 列五 = 'XXX'

表别名只在查询执行中使用,与列别名不一样,表别名不返回到客户机

使用不同类型的联结

自联结

如果你想找出生产过"商品一"的所有厂商,然后列出这些厂商所生产的产品信息:

select 商品ID, 商品名 from 表
where 商品厂商 = (select 商品厂商 from 表
                 where 商品名 = "商品一");

而使用自联结可以这么写:

select p1.商品ID, p1.商品名
from 表 as p1, 表 as p2
where p1.商品厂商 = p2.商品厂商
  and p2.商品ID = "商品一";

虽然两个方法结果是相同的,但有时候处理联结远比处理子查询快得多。

自然联结

其实自然联结和内部联结一样,只是不允许出现相同的列。系统不会帮你自然联结(过去的MySQL有此功能),只能通过自己手动联结这些互不相同的列。事实上,可能我们建立的每个内部联结都是自然联结。

外部联结

在对两个表(比如 表A 和 表B)进行联结时,我们可能会遇到 在表B中找不到与表A(的某一行)相关联的一行 的情况。使用内部联结或者自然联结时,会直接抛弃表A中的这类行,而在外部联结,会保留这类行,并对行中B列的值标记为NULL。

比如࿰

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值