当前位置: 首页 > news >正文

网站网站建设哪家便宜成都网站快速排名优化

网站网站建设哪家便宜,成都网站快速排名优化,江苏省住建厅官方网,团购网站发展目录 跨表组合数据(JOIN) 🔗 什么是 JOIN? 🔗 为什么要用 JOIN? 基本语法: 表别名(o, c, p 是什么?) 常见 JOIN 类型总结 JOIN 多个表 创建实体关系图…

目录

跨表组合数据(JOIN)

🔗 什么是 JOIN?

🔗 为什么要用 JOIN?

基本语法: 

表别名(o, c, p 是什么?)

常见 JOIN 类型总结

 JOIN 多个表

创建实体关系图(ERD) 

跨表组合数据(JOIN)

🔗 什么是 JOIN?

JOIN 是用来连接两个或多个表的操作,它基于表之间的关系(通常是外键),将它们的记录“拼接”起来,它让你能在多个表之间组合数据。

我们仍然以coffee_store 数据库为例,里面有三张表:

  • products(id, name, price, coffee_orgin)

  • customers(id, first_name, last_name, gender, phone_number)

  • orders(id, product_id, customer_id, order_time)

customers ←── orders ──→ products↑product_idcustomer_id

 

🔗 为什么要用 JOIN?

你把商品信息放在 products 表里,把客户信息放在 customers 表里,订单记录放在 orders 表里。
而你想问的问题是:某个客户买了什么商品?” —— 这个就必须用 JOIN 把多个表连接起来。

 

基本语法: 

SELECT 列1, 列2, ...FROM 表A
JOIN 表B ON 表A.列名 = 表B.列名;#表A为左表 ,表B为右表

 

表别名(o, c, p 是什么?)

在 JOIN 中我们常使用表别名(alias),提高代码可读性。
示例:

FROM orders AS o
JOIN customers AS c ON o.customer_id = c.id

含义是:

  • oorders 的简称

  • ccustomers 的简称

写别名的目的是为了避免重复表名前缀,尤其在多表连接中非常有用。

 

常见 JOIN 类型总结

JOIN 类型说明是否保留未匹配行
INNER JOIN两边都匹配才返回❌ 否
LEFT JOIN返回左表所有行,右表能匹配就匹配✅ 是
RIGHT JOIN返回右表所有行,左表能匹配就匹配✅ 是
FULL JOIN左右都保留(MySQL 不直接支持)✅ 是

1️⃣ INNER JOIN:匹配成功才返回

SELECT o.id AS order_id, c.first_name, p.name
FROM orders AS o
INNER JOIN customers AS c ON o.customer_id = c.id
INNER JOIN products AS p ON o.product_id = p.id;
  • 每一条记录是:某个顾客买了某个商品,在某个时间

  • 只有当 orders 表中的 customer_idproduct_id 都能在其它表找到匹配时才会返回

2️⃣ LEFT JOIN:保留左表所有数据 

无论右表是否有匹配,左表的记录都保留 

右表没有匹配时,对应的字段值为 NULL 

SELECT o.id AS order_id, p.name AS product_name
FROM orders AS o
LEFT JOIN products AS p ON o.product_id = p.id;

订单表是左边,哪怕某个 product_idproducts 表中找不到匹配(比如产品被删了),这条订单仍然会被显示,只是 product_nameNULL。 

 3️⃣ RIGHT JOIN(较少使用)

SELECT c.first_name, o.id AS order_id
FROM orders AS o
RIGHT JOIN customers AS c ON o.customer_id = c.id;

保留 customers 中的所有客户,即使他们没下订单。 

 

 JOIN 多个表

多表 JOIN 的语法结构 

SELECT ...
FROM 表1
JOIN 表2 ON 表1.字段 = 表2.字段
JOIN 表3 ON 表2.字段 = 表3.字段
...

 注意:JOIN 是“逐步连接”的过程,每次 JOIN 两张表,最后形成一张大表。

☕ 示例:联查顾客名字、产品名称、订单时间 

SELECT c.first_name,c.last_name,p.name AS product_name,p.price,o.order_time
FROM orders AS o
JOIN customers AS c ON o.customer_id = c.id
JOIN products AS p ON o.product_id = p.id;
  • 主表:orders(订单是中间表,连接顾客和商品)

  • 第一步 JOIN customers:o.customer_id = c.id

  • 第二步 JOIN products:o.product_id = p.id

 

为什么要“逐个 JOIN”?

因为每个 JOIN 的条件都必须基于当前已有的表结构去连接新表。举例:

  • orderscustomer_id → JOIN customers

  • ordersproduct_id → JOIN products

这叫连接路径是明确的,你不能跳着连,要层层跟上。

JOIN 顺序是否重要?

语义上不重要,但实际写法上有讲究

  • 如果你把 orders 放在最前,连接 customersproducts 就很自然

  • 否则你要调整连接条件,比如:

FROM customers c
JOIN orders o ON c.id = o.customer_id
JOIN products p ON o.product_id = p.id

 也是可以的,关键是 ON 条件要对!

 

创建实体关系图(ERD) 

在 MySQL Workbench 中创建 Entity Relationship Diagram(ERD) 是非常实用的功能,适合可视化数据库结构。 

步骤:

  1. 打开 MySQL Workbench

  2. 连接进入你的数据库

  3. 菜单栏点击:Database > Reverse Engineer

 

 4.出现导入向导:

  •  选择数据库连接 ✅

  • 选择要导入的 schema(比如 coffee_store)✅

  • 点击下一步,直到完成

5. 成功后,Workbench 会为你生成一张 ER 图,展示所有表及其主外键关系

6.你可以在这个界面中拖动、调整表的位置,并右键表查看表结构 

 

http://www.cadmedia.cn/news/4428.html

相关文章:

  • 威海泰浩建设集团有限公司网站网站优化塔山双喜
  • 义乌购1688批发网seo外包 杭州
  • 微信小程序开发工具下载哪个版本新网站百度seo如何做
  • 网站建设制作公司都选万维科技企业seo排名有 名
  • html在线编写网站夫唯seo怎么样
  • 东莞汽车总站停止营业客户营销
  • 本地app制作公司地址百度seo优化多少钱
  • 西安市政府网站建设seo建站公司
  • 会员管理系统app免费版网页优化seo广州
  • 建设一个电商网站的流程是什么欧洲站fba
  • 新浪推网站人工智能培训
  • 乌鲁木齐微信小程序制作公司做seo要投入什么
  • 天河微网站建设怎么做网站广告
  • 最火的传奇手游网站深圳今日头条新闻
  • 百川网站维护网站页面优化方案
  • 每日军事新闻报道沈阳seo公司
  • 产品设计专业介绍seo推广有哪些
  • 网站建设开发步骤自助建站平台源码
  • 大型建站公司是干嘛的sem和seo是什么
  • 中国著名b2b电子商务网站周口搜索引擎优化
  • 网站文章在哪发布做seo适合seo的建站系统
  • 公司建设官方网站太原做网站的
  • 网站推广服务具体内容包括哪些青岛百度关键词优化
  • 一站式营销型网站建设服务关键词排名点击工具
  • 建设网站怎么入账发布软文网站
  • 江苏网站开发电话百度网站排名规则
  • 公司网站建设申请单网站查询备案信息
  • 浙江省城乡住房建设网站百度客服电话
  • 长治网站建设招聘搜索网站排名
  • 真封神网站后台建设教程百度seo推广怎么收费