SUBQUERY
SQL'de subquery (alt sorgu), bir SQL sorgusu içinde başka bir sorgu kullanarak verileri sorgulamak için kullanılan bir yapıdır. Subquery, bir ana sorgunun içinde bir alt sorgu olarak yer alır ve bu alt sorgu, bir veya daha fazla sorgu ifadesini içerir.
Subquery, birçok farklı amaç için kullanılabilir. Örneğin, bir alt sorgu, bir ana sorgunun koşulunu karşılayan tüm kayıtları döndürebilir, bir sütundaki maksimum veya minimum değeri bulabilir, veya bir başka tablodan veri çekebilir.
İşte bir örnek:
SELECT first_name, last_name, email
FROM customers
WHERE customer_id IN (
SELECT customer_id
FROM orders
WHERE order_date BETWEEN '2022-01-01' AND '2022-12-31'
);
Bu sorgu, customers tablosundan müşteri adı, soyadı ve e-posta adresi bilgilerini çeker, ancak sadece belirli bir tarih aralığında sipariş veren müşterileri içerir. Alt sorgu, orders tablosundan müşteri numaralarını (customer_id) döndürür ve ana sorgu, bu müşteri numaralarına sahip müşterilerin diğer bilgilerini döndürür.
Subquery'ler, herhangi bir SELECT ifadesinde kullanılabilir. Alt sorgular ayrıca WHERE, HAVING ve FROM ifadelerinde de kullanılabilir. Örneğin, bir alt sorgu, bir tablodaki kayıtların sayısını hesaplamak için kullanılabilir:
SELECT COUNT(*)
FROM (
SELECT *
FROM orders
WHERE order_date BETWEEN '2022-01-01' AND '2022-12-31'
) AS order_count;
Bu sorgu, orders tablosunda belirli bir tarih aralığındaki siparişlerin sayısını döndürür. Alt sorgu, orders tablosundan sadece belirli bir tarih aralığındaki siparişleri seçer ve ana sorgu, bu kayıtların sayısını döndürür.
Subquery'ler, SQL sorgularının daha esnek ve güçlü olmasını sağlayan birçok farklı kullanım senaryosu için kullanılabilir. Ancak, subquery'lerin karmaşık olabileceği ve performans sorunlarına neden olabileceği için, alt sorguların doğru şekilde optimize edilmesi önemlidir.
Last updated
Was this helpful?