mysql中相关查询sql语句

 2024-01-21 00:07:12  阅读 0

相关子查询是包含对也出现在外部查询中的表的引用的子查询。 通俗地说,子查询指的是主查询的数据。

用一个实际的例子来理解相关子查询

left join:左连接,返回左表中所有记录以及右表中连接字段相等的记录。

right join:右连接,返回右表中的所有记录以及左表中连接字段相等的记录。

内连接:内连接也称为等连接,只返回两个表中连接字段相等的行。

full join:外连接,从两个表返回行:左连接+右连接

交叉连接:结果是笛卡尔积,即第一个表中的行数乘以第二个表中的行数。

代码如下所示

@a 表(a int,b int)

@b表(a int,b int)

@a (1,1)

@a (2,2)

@b (1,1)

@b (3,3)

*来自@a

*来自@b

- 左边:

* 从 @a Aa 左端加入 @b Bb 在 Aa.a=Bb.a 上

- 正确的:

* 从 @a Aa 右加入 @b Bb on Aa.a=Bb.a

- 里面

* 从 @a Aa 内部加入 @b Bb on Aa.a=Bb.a

- 外部:

* 从@a Aa 完全加入@b Bb on Aa.a=Bb.a

- 交叉连接

* 来自@a交叉连接@b

相关子查询效率

显然,相关子查询的效率总体上比较低。 事实上,本例中的相关子查询示例只是为了演示相关子查询的原理和用法。 如果可能,尝试使用 JOIN 或其他查询来代替相关子查询。 在这个例子中,被 INNER JOIN 替换的 SQL 是:

代码如下所示

.* FROM INNER JOIN 用户 ON .uid = user.uid

注意:这只是为了演示用 INNER JOIN 替换相关子查询的示例。 并不意味着表名的这种处理是最优的处理。

标签: 查询 关联 连接

如本站内容信息有侵犯到您的权益请联系我们删除,谢谢!!


Copyright © 2020 All Rights Reserved 京ICP5741267-1号 统计代码