数据库查询延伸51

本文探讨了数据库查询中的四种关键操作:表联结、自联结、外部联结和组合查询UNION。通过实际案例,解释了如何查询多个表之间的关联信息,如何处理未匹配的数据,以及如何合并不同查询结果。特别是,UNION操作用于合并结果集,而UNION ALL则保留所有记录,包括重复行。
摘要由CSDN通过智能技术生成

表联结

表关系分为一对一、一对多、多对多三种。

表联结:在一条select语句中联结多个表。

案例:现在有两个表:vendors、products分别存储 供应商信息、产品信息。

如何查询所有的产品及其供应商信息?

运用表联结:

select prod_id, vend_name from vendors,products where vendors.vend_id = products.vend_id;
+---------+-------------+
| prod_id | vend_name   |
+---------+-------------+
| ANV01   | Anvils R Us |
| ANV02   | Anvils R Us |
| ANV03   | Anvils R Us |
| FU1     | LT Supplies |
| OL1     | LT Supplies |
| DTNTR   | ACME        |
| FB      | ACME        |
| FC      | ACME        |
| SAFE    | ACME        |
| SLING   | ACME        |
| TNT1    | ACME        |
| TNT2    | ACME        |
| JP1000  | Jet Set     |
| JP2000  | Jet Set     |
+---------+-------------+
14 rows in set (0.00 sec)

还可以使用join(或者是inner join):

select prod_id, vend_name from vendors inner join products on vendors.vend_id = products.vend_id;
+---------+-------------+
| prod_id | vend_name   |
+---------+-------------+
| ANV01   | Anvils R Us |
| ANV02   | Anvils R Us |
| ANV03   | Anvils R Us |
| FU1     | LT Supplies |
| OL1     | LT Supplies |
| DTNTR   | ACME        |
| FB      | ACME        |
| FC      | ACME        |
| SAFE    | ACME        |
| SLING   | ACME        |
| TNT1    | ACME        |
| TNT2    | ACME        |
| JP1000  | Jet Set     |
| JP2000  | Jet Set     |
+---------+-------------+
14 rows in set (0.00 sec)

如何查询产品价格信息及其供应商信息?

select item_price, products.prod_id, vend_name 
from orderitems, products,vendors 
where orderitems.prod_id  = products.prod_id 
and 
products.vend_id = vendors.vend_id;
+------------+---------+-------------+
| item_price | prod_id | vend_name   |
+------------+---------+------
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值