Mini-Projet : 3WATrade
Étape 0
Créez un repository Github public avec un README et appelez le bre04-php-j4 et clonez-le dans le dossier sites/php de votre IDE.
Étape 2
Dans un fichier requests.txt vous allez noter les requêtes permettant de répondre aux demandes suivantes :
La liste de tous les utilisateurs
SELECT * FROM users;
La liste de tous les utilisateurs rangée par noms de famille ;
SELECT * FROM users
ORDER BY users.last_name ASC;
Le dernier utilisateur inscrit ;
SELECT * FROM users
ORDER BY users.registration_date DESC
LIMIT 1;
La liste de tous les utilisateurs fêtant leur anniversaire ce mois-ci ;
SELECT * FROM users
WHERE MONTH(users.birthdate) = MONTH(CURRENT_TIMESTAMP);
Le nombre total d'utilisateurs ;
SELECT COUNT(users.id) FROM users;
La liste de tous les utilisateurs associés à leurs villes respectives ;
SELECT users.*, addresses.city
FROM users
JOIN addresses
ON addresses.user_id = users.id;
La liste de tous les utilisateurs vivant à une adresse sans numéro ;
SELECT users.*
FROM users
JOIN addresses
ON addresses.user_id = users.id
WHERE addresses.number IS NULL
La liste de tous les produits dont le prix est supérieur à 1 000 € ;
SELECT *
FROM products
WHERE products.price > 1000;
La liste de tous les produits associés à leurs photos respectives ;
SELECT products.*, pictures.*
FROM products
JOIN pictures
ON products.id = pictures.product_id
La liste de tous les produits appartenant à la catégorie « Voyage » ;
SELECT products.*
FROM products
JOIN products_categories
ON products_categories.product_id = products.id
JOIN categories
ON categories.id = products_categories.category_id
WHERE categories.title = "Voyage"
La liste de tous les utilisateurs ayant effectué plus de dix commandes ;
SELECT users.*
FROM users
JOIN orders
ON orders.user_id = users.id
GROUP BY users.id
HAVING COUNT(orders.id) > 10;
La liste de tous les produits achetés par le premier utilisateur inscrit.
SELECT products.*
FROM products
JOIN products_orders
ON products_orders.product_id = products.id
JOIN orders
ON orders.id = products_orders.order_id
JOIN users
ON users.id = orders.user_id
WHERE users.registration_date IN (
SELECT MIN(users.registration_date)
FROM users
);
# ou
SELECT products.*
FROM products
JOIN products_orders
ON products_orders.product_id = products.id
JOIN orders
ON orders.id = products_orders.order_id
JOIN users
ON users.id = orders.user_id
WHERE users.id = (
SELECT id
FROM users
ORDER BY users.registration_date ASC
LIMIT 1
);
05 June 2025