foreach(var e1 in
from table_1
where table_1.field_1 == 3
select table_1) {
foreach(var e2 in
from table_2
where table_2.field_2 == e1.field_1a
select table_2) {
foreach(var e3 in
from table_3
where table_3.field_3 == e2.field_2b
select table_3) {
...
}
}
}
But the query of that code can be written in SQL as following:
SELECT *
FROM TABLE_3,
(SELECT *
FROM TABLE_2,
(SELECT *
FROM TABLE_1
WHERE TABLE_1.FIELD_1 = 3
) X
WHERE TABLE_2.FIELD_2 = X.FIELD_1A
) Y
WHERE TABLE_3.FIELD_3 = Y.FIELD_2B
In the former code, the loop is expanded inside. But the SQL is expanded outside.
It is interesting but I do not know that it is significant.