mysql 子查询 联结 组合查询
2024-09-01 17:50:58
子查询
SELECT cust_id FROM orders WHERE order_num IN (SELECT order_num FROM orderitems WHERE prod_id='TN2');
联结
在一条select语句中关联表。
- 等值联结(内部联结)
基于两个表之间的相等测试。
# 首先列出表,然后定义表之间的关系
# 需求: 查询供应商供应的商品名与商品价格
# 方式一
SELECT vend_name, prod_name, prod_price
FROM vendors, products
WHERE vendors.vend_id = products.vend_id
ORDER BY vend_name, prod_name;
# 方式二 (推荐)
SELECT vend_name, prod_name, prod_price
FROM vendors INNER JOIN products
ON vendors.vend_id = products.id
ORDER BY vend_name, prod_name;
- 自联结
在一条SELECT语句中多次引用同一个表,通过起别名方式实现
# 需求:查询表products中'wahaha'的供应商,供应的其商品
SELECT p1.prod_id, p1.prod_name
FROM products AS p1, products AS p2
WHERE p1.vend_id = p2.vend_id AND p2.prod_id = 'wahaha';
- 外部联结
联结包含了在相关表中没有关联行的行,称为外联结。
比如,列出检索客户下了多少订单,也把没下订单的客户检索出来
SELECT customers.cust_id, orders.order_num
FROM customers LEFT OUTER JOIN orders
ON customers.cust_id = orders.cust_id
必须使用LEFT或RIGHT指定 包括所有行的表,LEFT指定的是OUT JOIN左边的表,RIGHT指定的是OUT JOIN右边的表,在上面的例子中,指定的是customers表
带有聚集函数的联结
# 检索所有客户及其所下的订单数
SELECT customers.cust_name, customers.cust_id, COUNT(orders.order_num) AS num_ord
FROM customers INNER JOIN orders
ON customers.cust_id = orders.cust_id
GROUP BY customers.cust_id
mysql 主键从1开始递增,且外键存在
1.取消外键约束 SET foreign_key_checks = 0
2.使用truncate清空全部数据主键自增长是从1开始 truncate table "表名字"
3.启动外键约束 SET foreign_key_checks = 1
组合查询
多数SQL查询只包含从一个或多个表中返回数据的单条SELECT语句,MYSQL也允许执行多个select语句查询,并将结果作为单个结果集返回,称为并(UNION)或复合查询
最新文章
- memcache的最佳实践方案
- 远程访问MySQL遇到的一些问题
- jsp分页功能
- 黑马程序员_Java基础:多功能小窗口,swing,io,net综合应用
- IOS适配
- Winform登录、控制软件只运行一次、回车登录
- jq宽高 详解
- map函数(转)
- Spark学习笔记-三种属性配置详细说明【转】
- 磁珠(FB)的选用
- 2015第14周日WebSocket
- 【解决方法】ADT在线安装
- About大数据插码
- 学习【Web前端开发修炼之道】总结
- .net core 系列
- Linux CentOs集群LVS+Keepalived负载均衡的实现
- coolSQL安装与使用
- Linux内核 kmalloc, kzalloc &; devm_kzalloc 区别【转】
- WordConut
- python 删除非空文件夹
热门文章
- C语言【10部分】
- 【C++】实现D3D9 的 Inline hook
- Jenkins+SpringCloud(多模块)+Vue项目详细配置
- 解决:Error downloading packages: containerd.io-1.6.4-3.1.el7.x86_64: [Errno 256] No more mirrors to try.
- VLDB'22 HiEngine极致RTO论文解读
- Logstash:运用 fingerprint 过滤器处理重复的文档
- Nginx反代服务器进阶学习最佳配置实践指南
- 第一个Django应用 - 第四部分:表单和类视图
- Beats在Kibana中的集中管理
- PostgreSQL 模式(SCHEMA)