Utilisation de DB::select dans Laravel
1. Sélection de toutes les colonnes d'une table
Récupérer toutes les colonnes de la table 'users' :
$results = DB::select('SELECT * FROM users');
2. Sélection de certaines colonnes avec une condition WHERE
Récupérer les colonnes 'id' et 'name' des utilisateurs dont le statut est 'active' :
$results = DB::select('SELECT id, name FROM users WHERE status = ?', ['active']);
3. Utilisation de jointures pour récupérer des données de plusieurs tables
Récupérer le nom de l'utilisateur et le montant de la commande en utilisant une jointure entre 'users' et 'orders' :
$results = DB::select('SELECT users.name, orders.amount FROM users JOIN orders ON users.id = orders.user_id');
4. Utilisation de fonctions d'agrégation comme COUNT, SUM, AVG, etc.
Compter le nombre total d'utilisateurs :
$result = DB::select('SELECT COUNT(*) as total_users FROM users');
5. Utilisation de conditions avancées
Récupérer les produits dont le prix est compris entre 100 et 500 :
$results = DB::select('SELECT * FROM products WHERE price > :min_price AND price < :max_price', ['min_price' => 100, 'max_price' => 500]);
6. Utilisation de sous-requêtes
Récupérer les utilisateurs qui ont passé des commandes :
$results = DB::select('SELECT * FROM users WHERE id IN (SELECT user_id FROM orders)');
7. Utilisation de clauses ORDER BY et LIMIT
Récupérer les 10 produits les plus chers :
$results = DB::select('SELECT * FROM products ORDER BY price DESC LIMIT 10');
Sélection de toutes les colonnes d'une table :
$results = DB::select('SELECT * FROM users');
Sélection de certaines colonnes avec une condition WHERE :
$results = DB::select('SELECT id, name FROM users WHERE status = ?', ['active']);
Utilisation de jointures pour récupérer des données de plusieurs tables :
$results = DB::select('SELECT users.name, orders.amount FROM users JOIN orders ON users.id = orders.user_id');
Utilisation de fonctions d'agrégation comme COUNT, SUM, AVG, etc. :
$result = DB::select('SELECT COUNT(*) as total_users FROM users');
Utilisation de conditions avancées :
$results = DB::select('SELECT * FROM products WHERE price > :min_price AND price < :max_price', ['min_price' => 100, 'max_price' => 500]);
Utilisation de sous-requêtes :
$results = DB::select('SELECT * FROM users WHERE id IN (SELECT user_id FROM orders)');
Utilisation de clauses ORDER BY et LIMIT :
$results = DB::select('SELECT * FROM products ORDER BY price DESC LIMIT 10');
Exécution de requêtes complexes et personnalisées pour des rapports ou des analyses spécifiques :
$results = DB::select('SELECT YEAR(created_at) as year, MONTH(created_at) as month, COUNT(*) as total_orders FROM orders GROUP BY YEAR(created_at), MONTH(created_at)');