Mysql的多表联合查询

内连接

隐式内连接

select column from tb1,tb2 where 条件;

显示内连接

关键字:[inner]  join on

显示内连接与外连接的不同是新增的关键字,inner join 以及 使用on 替换了where 

select column from tb1 [inner] join tb2 on 条件;

外连接

左外连接

关键字:left [outer]  join on

完全包含左表的数据

select column from tb1 left [outer] join tb2 on 条件;

同理

右外连接

关键字:right [outer]  join on

完全包含右表的数据。

左右表连接可以相互替换。

select column from tb1 right [outer] join tb2 on 条件;

内连接与外连接的区别就是,内连接只会将两个表的共同的数据展现出来。

自连接

关键字:join on

使用场景,就是一个表中的外键也关联着表的主键;

select column from tb asA join tb asB on 条件;

联合查询

关键字 :union 、 union all

把多次查询的结果合并起来

union 会去重。为了性能,推荐使用union all,不去重。

select column from tb where 条件;
union all
select column from tb where 条件;

子查询

嵌套select语句

外部语句可以是增删改查中的任意一个语句。

标量子查询:子查询的结果是一个单体。

select * from tb_name where column = (select column from tb);

列子查询:子查询的结果是一列或者多列信息。

关键字:in、not in 、any(some)、all

select * from tb where name ="" and  age > all(select age from tb);

select * from tb where id in (select id from tb where use_tb_id = "");

行子查询:子查询返回的结果是多行信息。

关键字:in、not in 、<>=

select * from tb where (age,hobby) = (select age,hobby from tb where name = "");

表子查询:子查询结果是多行多列

关键字:in

select * from tb where (age,hobby) in (select age,hobby from tb where name = "" or name = "");

  • 36
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: MySQL多表联合查询可以通过使用JOIN关键字来实现。JOIN子句用于将两个或多个表的行连接起来。以下是一个简单的示例,展示了如何使用JOIN来连接两个表: ``` SELECT * FROM table1 JOIN table2 ON table1.column = table2.column; ``` 在上面的示例中,我们使用SELECT语句选择两个表中的所有行,并使用JOIN子句将它们连接起来。ON子句用于指定连接条件,这里我们使用`table1.column = table2.column`来指定两个表之间的连接。这将返回一个包含两个表的所有行的结果集。 除了JOIN子句之外,还有其他类型的JOIN,包括LEFT JOIN、RIGHT JOIN和FULL OUTER JOIN等。这些JOIN类型的区别在于它们如何处理连接条件不满足时的结果。例如,LEFT JOIN将返回左表中的所有行,以及右表中与左表中的行匹配的行,而右表中没有匹配的行将返回NULL值。 下面是一个LEFT JOIN的示例: ``` SELECT * FROM table1 LEFT JOIN table2 ON table1.column = table2.column; ``` 在这个示例中,我们使用LEFT JOIN来连接两个表。与JOIN不同的是,它返回左表中的所有行,而右表中没有匹配的行返回NULL值。 ### 回答2: 多表联合查询是指在MySQL数据库中,通过使用JOIN关键字,将两个或多个表连接在一起,根据指定的条件从这些表中检索数据。 MySQL多表联合查询的语法如下: SELECT 列名 FROM 表1 JOIN 表2 ON 条件 [JOIN 表3 ON 条件] … 在这个语法中,需要指定要查询的列名和要连接的表名。使用ON关键字来指定连接条件,可以根据表1和表2之间的共同字段进行连接。如果有需要,还可以继续使用JOIN关键字连接更多的表,并通过指定条件进行连接。 多表联合查询的主要作用是获取来自不同表中的相关数据,并将它们组合在一起以满足特定的查询需求。通过联合查询可以避免数据冗余和重复,减少数据库的存储空间和维护成本。此外,多表联合查询还能够提高查询的效率,减少查询时间,提升数据库的性能。 在进行多表联合查询时,需要确保所连接的表之间存在关联关系,并根据实际情况选择合适的连接方式,如INNER JOIN、LEFT JOIN、RIGHT JOIN等。 总之,MySQL多表联合查询是一种非常常用和重要的数据查询技术,能够灵活地获取来自多个表中相关的数据,并满足复杂的查询需求。掌握多表联合查询的使用方法,有助于提高数据库的查询效率和性能。 ### 回答3: MySQL多表联合查询是指在查询中同时涉及到多个表,通过表之间的关联关系进行数据的筛选和获取。通过多表联合查询可以更加灵活地获取到需要的数据,实现复杂的查询需求。 在多表联合查询中,可以通过使用JOIN关键字来实现表之间的连接。常见的JOIN有INNER JOIN、LEFT JOIN、RIGHT JOIN和FULL JOIN等,它们分别表示不同的连接方式。其中,INNER JOIN表示取两个表的交集,即只返回两个表中存在匹配关系的数据;LEFT JOIN表示取左表与右表的交集以及左表中存在但右表中不存在的数据;RIGHT JOIN表示取右表与左表的交集以及右表中存在但左表中不存在的数据;FULL JOIN表示取两个表的并集,包含两个表中的所有数据。 除了JOIN关键字外,我们还可以使用WHERE条件来进一步筛选联合查询的结果。通过在WHERE条件中对表的字段进行条件筛选,可以实现更加精确的查询。同时,可以使用ORDER BY关键字对结果进行排序,使用LIMIT关键字限制返回结果的条数。 多表联合查询可以根据业务需求的不同,灵活应用各种关联方式和筛选条件,实现复杂的数据查询。掌握多表联合查询的技巧,可以提高数据查询的效率和准确性,为业务提供更好的支持。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值