在 MySQL 5.7 版本中,使用多重嵌套子查询时,子查询中使用外部查询中的列,报错,找不到列
时间: 2023-12-11 16:06:08 浏览: 174
mysql 5.7 中文文档
5星 · 资源好评率100%
在MySQL 5.7版本中,子查询中使用外部查询中的列会报错,这是MySQL的限制。解决这个问题的方法是使用派生表(Derived Table)或者使用连接(JOIN)查询。
使用派生表的方法是在外部查询中先定义一个子查询,并通过别名的方式引用该子查询的结果,然后在内部子查询中引用这个别名来获取外部查询中的列。例如:
```
SELECT *
FROM (
SELECT id, name
FROM my_table
) t1
WHERE t1.id IN (
SELECT t2.id
FROM (
SELECT id
FROM my_table
WHERE name = 'abc'
) t2
)
```
使用连接查询的方法是将两个查询通过某个字段连接起来,然后再筛选出符合条件的结果。例如:
```
SELECT t1.*
FROM my_table t1
INNER JOIN (
SELECT id
FROM my_table
WHERE name = 'abc'
) t2
ON t1.id = t2.id
```
阅读全文