mysql 的嵌套查询

mysql 的嵌套查询

mysql 的嵌套查询
大家好,咨询一个perl 的问题。
mysql要到4.0以后才支持嵌套查询。现在的mysql是3.2的。怎么解决嵌套查询的问题呢?
例如下面:
select id from table1 where id in(select id from table2 where id in(select id from table2 where cat=2))
在perl+mysql 3.2 里面如何实现这类查询?
select id from table1 wh.
select id from table1 where id in(select id from table2 where id in(select id from table2 where cat=2))
个人感觉这句直接写成
select id from table1 where id in (select id from table2 where cat = 2)
你in用得越多,查询越慢.注意优化你的SQL,以减少不必要的性能损失.
List::Util
用类似 grep 的列表处理函数来做 id 过滤可以么?这样比较传统但是对 SQL 的依赖小一些。
如果需要更加专业的可以参考 List::Util 和 List::MoreUtils
anthony 建议 的 join 也可以的。
是我写错了.
这是举例语句
select id from table1 where id in(select id from table2 where id in(select id from table3 where cat=2))
里面包含的嵌套子语句未定有几个,根据程序输出,或许有5至6个子语句.
我试了在子语句较多的情况下,用多表查询或join in 的速度都不如用嵌套查询.几乎是成比例的.

我希望直接查询第一个语句

select id from table3 where cat=2
查询出结果存为数组.
然后继续在数组中进行下一个查询
select id from table2 where id in @inid;

现在问题是如何把查询结果直接输入进数组,然后在数组中继续查询?