ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

联结+组合查询

2022-07-16 17:02:39  阅读:195  来源: 互联网

标签:cust 组合 cl 联结 查询 Products WHERE id SELECT


1、分组过滤:

GROUP BY 子句必须出现在WHERE 子句之后,ORDER BY 子句之前。

WHERE过滤行,而 HAVING过滤分组。

列出具有两个以上产品且其价格大于等 于 4 的供应商:

SELECT vend_id, COUNT(*) AS num_prods
FROM Products
WHERE prod_price >= 4
GROUP BY vend_id
HAVING COUNT(*) >= 2;

2、联结表:

联结多表

SELECT procLname, vencLname, procLprice, quantity
FROM Orderltems, Products, Vendors
WHERE Products.vencLId = Vendors.vencLId
AND Orderltems.prod_id = Products.prod_id
AND order_num = 20007;

内联结

基于两个表之间的相等测试

SELECT vencLname, procLname, procLprice
FROM Vendors
INNER JOIN Products ON Vendors.vencLId = Products.vend_id;

自联结

不止一次引用相同的表

要给与Jim Jones同一公司的所有顾客发送一封信件。

SELECT cl.cust_id ,cl.cust_name, cl.cust_contact
FROM Customers AS cl, Customers AS c2
WHERE cl.cust_name = c2.cust_name
AND c2.cust_contact = 'Jim Jones';

外联结

许多联结将一个表中的行与另一个表中的行相关联,但有时候需要包含没有关联行的那些行。

它检索所有顾客及其订单(包括没有订单顾客在内的所有顾客):

SELECT Customers.cust_id, Orders.order_num
FROM Customers
LEFT OUTER JOIN Orders ON Customers.cust_id = Orders.cust_id;

在 使 用 OUTER JOIN 语法时,必须使用RIGHT 或 LEFT 关键字指定包括其所有行的表( RIGHT指出的是OUTER JOIN 右边的表,而 LEFT指出的是OUTER JOIN 左边的表)。

 

3.组合查询

不去重:union all

将两组查询合并在一块

select
    device_id, gender, age, gpa
from user_profile
where university='山东大学'
 
union all
 
select
    device_id, gender, age, gpa
from user_profile
where gender='male'

 

 

标签:cust,组合,cl,联结,查询,Products,WHERE,id,SELECT
来源: https://www.cnblogs.com/gk520/p/16484605.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有