查询供应了零件P1的供应商集合与供应了零件P2 的供应商集合的交集。
时间: 2024-03-02 15:53:34 浏览: 26
好的,以下是针对你的问题的 SQL 查询语句:
```
SELECT supplier_no
FROM parts
WHERE part_no = 'P1'
INTERSECT
SELECT supplier_no
FROM parts
WHERE part_no = 'P2';
```
这个查询语句会返回所有既供应了零件P1,又供应了零件P2的供应商的集合交集。它使用了 INTERSECT 运算符,将两个子查询的结果集合并为一个结果集,得到既供应了零件P1,又供应了零件P2的供应商的编号集合。
相关问题
查询供应了零件P1或者供应了零件P2的供应商。
好的,以下是针对你的问题的 SQL 查询语句:
```
SELECT DISTINCT s.*
FROM suppliers s
JOIN parts p ON s.supplier_no = p.supplier_no
WHERE p.part_no = 'P1' OR p.part_no = 'P2';
```
这个查询语句会返回所有供应了零件P1或者供应了零件P2的供应商。使用 JOIN 连接 suppliers 表和 parts 表,通过 WHERE 子句筛选出供应了零件P1或者P2的记录,并使用 DISTINCT 关键字去除重复的供应商记录。
查询供应零件P1的并且供应总量大于400的供应商号及供应总量。
好的,您可以通过以下 SQL 查询语句来实现您的需求:
```
SELECT s.sno, SUM(sp.qty) AS total_qty
FROM supplier s, supply sp
WHERE s.sno = sp.sno AND sp.pid = 'P1'
GROUP BY s.sno
HAVING SUM(sp.qty) > 400;
```
该语句会在供应商表(supplier)和供应表(supply)之间进行联接,筛选出供应零件 P1 的所有供应记录,并按供应商号(sno)进行分组。然后,使用聚合函数 SUM 计算每个供应商的供应总量,并将其命名为 total_qty。最后,使用 HAVING 子句过滤出供应总量大于400的供应商。