A correlated subquery is used, in each row of your query some action should be performed, which depends on one or more values ββfrom this row.
So, for example, if you want to know, include a row in a result set based on something that happens in another table, you can do:
SELECT * FROM YourTable YT WHERE EXISTS (SELECT * FROM SomeOtherTable SOT WHERE SOT.ID = YT.ID AND SOT.SomeInteger BETWEEN YT.LowInteger AND YT.HighInteger)
Similarly in UPDATE:
UPDATE YourTable YT SET YourColumn = (SELECT SUM(SomeColumn) FROM SomeOtherTable SOT WHERE SOT.ID = YT.ID AND SOT.SomeField <> YT.SomeField)
Sometimes these requests can be written with standard JOINs, but sometimes not.
source share