首页 > 数据库 >mysql联接表

mysql联接表

时间:2023-01-24 14:22:40浏览次数:38  
标签:product vendor name vendors products mysql 联接 id

建立两张表:

①供应商vendors表,包含id和名字。

CREATE TABLE vendors (
        id INT PRIMARY KEY,
        vendor_name VARCHAR(25)
        );

②商品表_products,包含供应商id(vendor_id),商品名(product_name)和商品价格(product_price)。

CREATE TABLE _products (
        vendor_id INT,
        product_name VARCHAR(25),
        product_price DECIMAL(8, 2)
        );

插入数据:

INSERT INTO _products VALUES(1001, '香蕉', 9.8), 
                    (1001, '苹果', 12.81), 
                    (1002, '玉米', 20.8), 
                    (1002, '五谷杂粮', 30.81), 
                    (1003, '衣服', 20.99);
INSERT INTO vendors VALUES(1001, '怡馨家园'), (1002, '蔬果超市'), (1003, '亿嘉超市');
  • INNER JOIN(内连接,或等值连接):获取两个表中字段匹配关系的记录。
  • LEFT JOIN(左连接):获取左表所有记录,即使右表没有对应匹配的记录。
  • RIGHT JOIN(右连接): 与 LEFT JOIN 相反,用于获取右表所有记录,即使左表没有对应匹配的记录。

内连接演示

-- 查询提供衣服的供应商信息
SELECT product_name, id, vendor_name FROM vendors, _products WHERE vendors.`id` = _products.`vendor_id` AND _products.`product_name` = '衣服';
-- 第二种写法
SELECT id, product_name, vendor_name FROM vendors INNER JOIN _products 
                        ON vendors.`id` = _products.`vendor_id` AND _products.`product_name` = '玉米';

左连接演示

-- 左外链接
INSERT INTO vendors VALUES(1004, '零食屋');
SELECT vendor_name, product_name FROM vendors LEFT JOIN _products ON vendors.`id` = _products.`vendor_id`;

 

右连接演示

-- 右外联接
INSERT INTO _products VALUES(1005, '鞋子', 40.99);
SELECT vendor_name, product_name FROM vendors RIGHT JOIN _products ON vendors.`id` = _products.`vendor_id`;

 

标签:product,vendor,name,vendors,products,mysql,联接,id
From: https://www.cnblogs.com/dadishi/p/17066050.html

相关文章

  • Linux-CentOS布署MySQL5.7
             ......
  • MySQL分库分表方案
    1导读各位小伙伴,在目前企业级开发中采用Mysql做为数据库是一个主流选择,而当数据量比较大的情况下,为了支撑项目的正常快速的运行,我们不得不选择对数据库分库分表操作,本章节......
  • mysql使用子查询
    定义三个表:①order表,包含订单号order_num和客户id(cust_id),此表表示客户的购物记录。CREATETABLE`order`(order_numINT,cust_idINT);SELECT*FROM......
  • MySQL 日期函数、时间函数在实际场景中的应用
    整理日常业务中用到日期函数的一些场景,并对日期函数按照使用类型做了分类,实例也尽可能符合日常需求。为了方便查阅,可以先看目录,再根据需要看具体方法和实例。首先明确日期......
  • MySQL中IN和ANY的区别是什么
    MySQL中IN和ANY用于比较两个表达式是否相等。IN用于检查一个值是否在一个列表中。语法为:valueIN(list)。例如:CopycodeSELECT*FROMordersWHEREcustomer_idIN(1,......
  • MySQL 性能优化浅析及线上案例
    作者:京东健康孟飞1、数据库性能优化的意义业务发展初期,数据库中量一般都不高,也不太容易出一些性能问题或者出的问题也不大,但是当数据库的量级达到一定规模之后,如果缺失......
  • coredns mysql 扩展使用+readyset 试用
    基于db进行dns记录的管理还是比较有用的,尤其在一些开发环境中,以下是一个使用同时也会尝试集成readyset(但是木有成功,应该是mysql编码兼容的问题)添加&构建插件方法比......
  • MySQL笔记01: MySQL入门_1.2 MySQL下载安装与配置
     2.2MySQL下载安装与配置 2.2.1MySQL下载  MySQL中文官网:https://www.mysql.com/cn/   MySQL英文官网:https://www.mysql.com/   MySQL官网下载地址:h......
  • 远程连接Docker上的Mysql失败的解决方案
    之前VMWare虚拟机CentOS7使用DHCP,导致只要重启操作系统,网卡IP地址就改变。于是把网卡修改为手工设定IP地址,结果导致远程连接mysql出现如下错误,花了很多时间还没有解决,最终偶......
  • MySQL排序与分页详解
    1.排序数据排序规则使用ORDERBY子句排序ASC(ascend):升序DESC(descend):降序ORDERBY子句在SELECT语句的结尾。单列排序SELECTlast_name,job_id,department_id,hire_d......