标签搜索

数据库的关联查询

幻鹤
2022-04-15 / 17 评论 / 1,948 阅读 / 正在检测是否收录...

两个表之间关联查询怎么查捏

查找Bookstore数据库中客户订购的图书书名,订购册数和订购时间。(涉及到两个表的数据)

(此表可看前几天发表的数据结构)


按照常规方法

select 书名,订购册数,订购时间 from book,sell;

--

会出现错误数据 因为 会和无效数据关联 所有需要一个字段做两个表的关联

因为两个表是由“图书编号”相互关联的,所有只用加where条件即可

    select 书名,订购册数,订购时间 from book,sell where book.图书编号=sell.图书编号;

还可以使用inner join 代码

select 书名,订购册数,订购时间 from book inner join sell on book.图书编号=sell.图书编号;

咱们再来一个实例

用JOIN关键字表达下列查询:查找购买了“计算机文化基础”且订购数量大于5本的图书书名和订购册数:

select 书名,订购册数 from book inner join sell on book.书名="计算机文化基础" and book.图书编号=sell.图书编号 and 订购册数>5;

三:

用JOIN关键字表达下列查询:查找购买了“计算机文化基础”且订购数量大于5本的图书书名、会员姓名和订购册数。
分析:中间表是sell表所以使用时放在前面

(join连接)

select 书名,会员姓名,订购册数
from sell join book on sell.图书编号=book.图书编号
join members on sell.身份证号=members.身份证号
where 书名="计算机文化基础" and 订购册数>5;

(等值连接)

select 书名,会员姓名,订购册数
from sell,book,members where sell.图书编号=book.图书编号 and sell.身份证号=members.身份证号 and 书名="计算机文化基础" and 订购册数>5;

四:自表连接

查找BookStore数据库中订单不同、图书编号相同的图书的订单号、图书编号和订购册数。
同一个表比较需要生成两个表比较

from sell as a join sell as b 

所以代码就为

select a.订单号,a.图书编号,a.订购册数 from sell as a join sell as b on a.图书编号=b.图书编号 where a.订单号!=b.订单号;

五:

查找Members表中所有订购过图书的会员姓名。(注意去重distinct)
因为字段名都叫身份证号,所以可以使用using函数:

select distinct 会员姓名 from sell join members using(身份证号);

外连接:

指定了OUTER关键字的连接为外连接。外连接包括: 左外连接(LEFT OUTER JOIN):
结果表中除了匹配行外,还包括左表有的但右表中不匹配的行,﹒对于这样的行,从右表被选择的列设置为NULL。 右外连接(RIGHT OUTER
JOIN) : 结果表中除了匹配行外,还包括右表有的但左表中不匹配的行.对于这样的行,从左表被选择的列设置为NULL。

六:

查找所有图书的图书编号、数量及订购了图书的会员身份证号,若从未订购过,电要包括其情况。

左边字段全部显示,没有匹配的就用null表示

select 图书编号,数量,身份证号 from book left outer join sell using(图书编号);
select 图书编号,数量,身份证号 from sell right outer join book using(图书编号);

七:

查找订购了图书的会员的订单号、图书编号和订购册数以及所有会员的会员姓名

select 订单号,图书编号,订购册数,会员姓名 from members left outer join sell using(身份证号);

子查询:

八:

查找在Bookstore数据库中张三的订单信息。

join连接

select sell.* from sell join members using(身份证号) where 会员姓名="张三";

子查询

select * from sell where 身份证号 in (select 身份证号 from members where 会员姓名='张三');

嵌套子查询

九:

查找购买了除“网页程序设计”以外图书的会员信息。要查找会员信息,先要知道会员的身份证号,而要知道购买了除“网页程序设计”以外图书的会员,可以按图书编号在sell表中查到,但是“网页程序设计”的图书编号要通过查找Book才可以获得。

查找图书编号

select 图书编号 from book where 书名="网页程序设计";

查找身份证号

select 身份证号 from sell where 图书编号 not in (select 图书编号 from book where 书名="网页程序设计");

所以就最终代码是:

select * from members where 身份证号 in (select 身份证号 from sell where 图书编号 not in (select 图书编号 from book where 书名="网页程序设计"));

查找购买了图书编号为“ISBN 1-45-76-T”的图书的会员信息。要求分别用join连接、等值连接、子查询完成这道题。

join:

select members.* from sell join members using(身份证号) where 图书编号="ISBN 1-45-76-T";

等值:

select members.* from sell,members where sell.身份证号=members.身份证号 and 图书编号="ISBN 1-45-76-T";

子查询

select * from members where 身份证号 in (select 身份证号 from sell where 图书编号="ISBN 1-45-76-T");
1

评论 (17)

取消
  1. 头像
    igtaruwrdw
    Windows 10 · Google Chrome

    博主真是太厉害了!!!

    回复
  2. 头像
    fthnzjqpbt
    Windows 10 · Google Chrome

    看的我热血沸腾啊

    回复
  3. 头像
    iubtwzyypq
    Windows 10 · Google Chrome

    怎么收藏这篇文章?

    回复
  4. 头像
    twfwcdqwgi
    Windows 10 · Google Chrome

    不错不错,我喜欢看 https://www.237fa.com/

    回复
  5. 头像
    klshubwwkr
    Windows 10 · Google Chrome

    想想你的文章写的特别好https://www.ea55.com/

    回复
  6. 头像
    khedrkyxmc
    Windows 10 · Google Chrome

    想想你的文章写的特别好www.jiwenlaw.com

    回复
  7. 头像
    tsniypdvan
    Windows 10 · Google Chrome

    兄弟写的非常好 https://www.cscnn.com/

    回复
  8. 头像
    hazjsvqjwk
    Windows 10 · Google Chrome

    真好呢

    回复
  9. 头像
    sixvgquecb
    Windows 10 · Google Chrome

    真好呢

    回复
  10. 头像
    oeftfehset
    Windows 10 · Google Chrome

    博主太厉害了!

    回复
  11. 头像
    qjiufjunyd
    Windows 10 · Google Chrome

    《你是我的命运2005》爱情片高清在线免费观看:https://www.jgz518.com/xingkong/27998.html

    回复
  12. 头像
    yoejrflfon
    Windows 10 · Google Chrome

    《影子》剧情片高清在线免费观看:https://www.jgz518.com/xingkong/126073.html

    回复
  13. 头像
    lpiuafxjvx
    Windows 10 · Google Chrome

    《德云社德云五队小开箱庆典南京站2020》大陆综艺高清在线免费观看:https://www.jgz518.com/xingkong/55232.html

    回复
  14. 头像
    pzhcdxsjkf
    Windows 10 · Google Chrome

    《影子》剧情片高清在线免费观看:https://www.jgz518.com/xingkong/126073.html

    回复
  15. 头像
    oidcohamfb
    Windows 10 · Google Chrome

    《上甘岭预告片(周年纪念版)》战争片高清在线免费观看:https://www.jgz518.com/xingkong/153144.html

    回复
  16. 头像
    lminjvongl
    Windows 10 · Google Chrome

    哈哈哈,写的太好了https://www.lawjida.com/

    回复
  17. 头像
    xbhvvwetgw
    Windows 10 · Google Chrome

    哈哈哈,写的太好了https://www.lawjida.com/

    回复