通过规定语法,进行内链查询
// 标准语法: SELECT 列名 FROM 表名1 [INNER] JOIN 表名2 ON 关联条件; -- 查询用户信息和对应的订单信息 SELECT * FROM USER INNER JOIN orderlist ON orderlist.uid = user.id; // 设置别名进行查询 SELECT u.name, u.age, o.number FROM USER u INNER JOIN orderlist o ON o.uid = u.id;
多表查询-隐式内连接:
// 标准语法: SELECT 列名 FROM 表名1,表名2 WHERE 关联条件; // 查询用户姓名,年龄。和订单编号 SELECT u.name, u.age, o.number FROM USER u, orderlist o WHERE o.uid = uid;
多表查询-左外连接:
标准语法: SELECT 列名 FROM 表名1 LEFT [OUTER] JOIN 表名2 ON 条件; // 查询所有用户信息,以及用户对应的订单信息 SELECT u.* o.number FROM USER u LEFT OUTER JOIN orderlist o ON o.uid = u.id;
多表查询-右外连接:
标准语法: SELECT 列名 FROM 表名1 RIGHT [OUTER] JOIN 表名2 ON 条件; // 查询所有订单信息,以及订单所属的用户信息 SELECT o.*, u.name FROM USER u RIGHT OUTER JOIN orderlist o ON o.uid = u.id;
多表查询-子查询:
// 结果是单行单列的 // 标准语法: SELECT 列名 FROM 表名 WHERE 列名=(SELECT 列名 FROM 表名 [WHERE 条件]); // 查询年龄最高的用户姓名 SELECT NAME,age FROM USER WHERE age=(SELECT MAX(age) FROM USER); // 结果是多行单列的 // 标准语法:SELECT 列名 FROM 表名 WHERE 列名 [NOT] IN (SELECT 列名 FROM 表名 [WHERE 条件]); // 查询张三和李四的订单信息 SELECT * FROM orderlist WHERE uid IN (SELECT id FROM USER WHERE NAME IN ('张三','李四')); // 结果是多行多列的 // 标准语法: SELECT 列名 FROM 表名 [别名],(SELECT 列名 FROM 表名 [WHERE 条件]) [别名] [WHERE 条件]; // 查询订单表中id大于4的订单信息和所属用户信息 SELECT u.name, o.number FROM USER u, (SELECT * FROM orderlist WHERE id > 4) o WHERE o.uid=u.id;
到此这篇关于MySQL数据库的多表操作的文章就介绍到这了,更多相关MySQL表操作内容请搜索
更多相关Mysql内容来自木庄网络博客
标签:Mysql
相关阅读 >>
更多相关阅读请进入《mysql》频道 >>

数据库系统概念 第6版
本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。