Mysql多表join查询(笛卡尔积、using、natural join)、union

建议join的表数量不要超过3个;关联字段的数据类型一样;关联字段有索引

1. 笛卡尔积

正常使用cross join进行笛卡尔积。但如果一个join不指定关联条件,也会产生笛卡尔积

2. using连接

使用using指定数据表里的同名字段进行等值连接。但只能配合join一起使用

例如:

mysql> select * from table1 join table2 using(user_id, city_id);

3. natural join

表示自然连接。帮你自动查询两张连接表中所有相同的字段 ,然后进行等值连接

例如:

mysql> select * from table1 natural join table2;

4. union

  • union:返回两个查询的结果集的并集,去除重复记录
  • union all:返回两个查询的结果集的并集。对于两个结果集的重复部分不去重

猜你喜欢

转载自blog.csdn.net/yy8623977/article/details/126309206