Unterabfragen sind einfach gesagt verschachtelte Queries. Bei Subqueries gibt es keine Syntax, wie beispielsweise bei Joins, aber es gibt gewisse Regeln, welche in den Beispielen visualisiert werden.
SELECT Name FROM CitiesWHERE Id IN ( SELECT CityId FROM Customers WHERE FirstName LIKE 'F%');
SELECT AVG(NumOfIngredients) FROM ( SELECT COUNT(*) AS NumOfIngredients FROM PizzaIngredients GROUP BY PizzaId) T;
SELECT Street, City.ZipCode, City.Name FROM CustomersJOIN City ON Customers.CityId = City.IdWHERE Customers.Id IN ( SELECT CustomerId FROM Orders WHERE Id = 3);
SELECT Name FROM IngredientsWHERE Id IN ( SELECT IngredientId FROM PizzaIngredients WHERE PizzaId IN ( SELECT Id FROM Pizzas WHERE Price = ( SELECT MAX(Price) FROM Pizzas ) ));
SELECT Name FROM IngredientsWHERE Id IN ( SELECT IngredientId FROM (SELECT IngredientId, COUNT(*) as Count FROM PizzaIngredients GROUP BY IngredientId) T WHERE Count = ( SELECT MAX(Count) FROM (SELECT IngredientId, COUNT(*) as Count FROM PizzaIngredients GROUP BY IngredientId) TT ));