假设您有两个带有列的表:
- 表1:ID,数据
- table2: id, t1_ref (这是 table1 的 FK), some_other_column
现在我可以写类似的东西(我知道这可以写得不同,更有效等,而不是寻找那些):
SELECT t1.data,
(SELECT count(*)
FROM table2 t2
WHERE t2.t1_ref = t1.id) AS nested_result
FROM table1 t1;
我的问题是,我在哪里可以在主查询的其余部分使用“nested_result” ?我可以在 FROM 中使用它(例如在另一个嵌套选择中)吗?还是在 WHERE?还是在 GROUP BY 中?还是按订单?其他地方?
例如 MySQL 似乎不喜欢:
SELECT t1.data,
(SELECT count(*)
FROM table2 t2
WHERE t2.t1_ref = t1.id) AS nested_result
FROM table1 t1
WHERE nested_result > 100;
但是这里的一般规则是什么?